【问题标题】:Is there a way to change the default DB scheme where Yii2 migrations are applied?有没有办法更改应用 Yii2 迁移的默认数据库方案?
【发布时间】:2021-03-31 13:21:24
【问题描述】:

我正在使用 Yii2 框架,更具体地说,我需要使用迁移来在我的网络应用中实现 RBAC。

我知道存在以下命令来自动生成 DbManager 用来存储其数据的 4 个表:

yii migrate --migrationPath=@yii/rbac/migrations

但问题是这些表是在“公共”方案中生成的。我需要在“appscheme”等其他方案中生成这些表。

我是否需要生成自己的这些迁移版本,或者有没有办法使用该命令更改默认方案?

(如果这很重要,我正在使用 Postgresql)

【问题讨论】:

    标签: postgresql yii2 frameworks migration rbac


    【解决方案1】:

    您可以通过--db 参数告诉迁移命令它应该使用哪个数据库连接组件。为此,您必须在应用程序配置中为其他方案配置连接。假设您的配置如下所示:

    [
        // default scheme
        'db' => [
            'class' => 'yii\db\Connection',
            'dsn' => 'pgsql:host=localhost;dbname=public',
            'username' => 'root',
            'password' => '',
            'charset' => 'utf8',
        ],
        //other scheme
        'db2' => [
            'class' => 'yii\db\Connection',
            'dsn' => 'pgsql:host=localhost;dbname=appscheme',
            'username' => 'root',
            'password' => '',
            'charset' => 'utf8',
        ],
        // ... other configurations
    ];
    

    默认情况下,迁移将使用db 组件。但我们希望它使用db2 组件。所以我们需要像这样运行迁移:

    yii migrate --migrationPath=@yii/rbac/migrations --db=db2
    

    请注意,yii 命令使用控制台配置,因此请确保您在 Web 和控制台配置中都定义了连接组件。

    【讨论】:

      猜你喜欢
      • 2013-08-14
      • 2016-02-24
      • 2023-02-06
      • 1970-01-01
      • 2019-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多