有没有办法更改应用 Yii2 迁移的默认数据库方案?
Is there a way to change the default DB scheme where Yii2 migrations are applied?
我正在使用 Yii2 框架,更具体地说,我需要使用迁移在我的网络应用程序中实施 RBAC。
我知道存在以下命令自动生成 DbManager 用于存储其数据的 4 个表:
yii migrate --migrationPath=@yii/rbac/migrations
但问题是那些表是在“public”方案中生成的。我需要在另一个方案(如“appscheme”)中生成这些表。
我是否需要生成我自己的这些迁移版本,或者有没有办法使用该命令更改默认方案?
(如果这很重要,我正在使用 Postgresql)
您可以通过 --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 和控制台配置中都定义了连接组件。
我正在使用 Yii2 框架,更具体地说,我需要使用迁移在我的网络应用程序中实施 RBAC。
我知道存在以下命令自动生成 DbManager 用于存储其数据的 4 个表:
yii migrate --migrationPath=@yii/rbac/migrations
但问题是那些表是在“public”方案中生成的。我需要在另一个方案(如“appscheme”)中生成这些表。
我是否需要生成我自己的这些迁移版本,或者有没有办法使用该命令更改默认方案?
(如果这很重要,我正在使用 Postgresql)
您可以通过 --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 和控制台配置中都定义了连接组件。