7

我正在构建一个基于 Yii2 高级模板的产品。

作为该产品及其未来部署的一部分,我正在尝试在常规 Yii2 迁移中自动创建与授权相关的表。

例如,当最终用户安装产品并运行常规的 Yii 迁移命令时,他应该有一个功能齐全的用户管理和授权活动。

为了授权工作,Yii2 RBAC 文档页面指出需要 4 个表(auth_*)。文档声明它们是通过运行以下迁移创建的:

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

我想通过在将存储在common/migrations.

有什么简单的解决方案吗?

4

3 回答 3

4

我创建了一个 migrate.sh 文件,我在其中放置了我需要运行的迁移命令。这使我可以同时从多个地方迁移。很简单,看这里:https ://github.com/Mihai-P/yii2-app-advanced/blob/master/migrate.sh

而不是运行,./yii migrate/up我只是运行sh migrate.sh它将从任何地方更新所有内容。

这一点的实际意义是:你不必完全坚持 Yii 给你的东西。这只是供您构建的模板。分叉它,修改它,让它成为你自己的。

于 2015-03-10T21:10:40.713 回答
3

尝试在 console/config/main.php 中添加:

'controllerMap' => [
        'migrate' => [
            'class' => 'yii\console\controllers\MigrateController',
            'migrationPath' => [
                '@console/migrations',               
                '@yii/rbac/migrations',
            ]
        ]
    ],
于 2016-05-19T10:57:12.157 回答
0

另一种方法(不使用 *.sh 文件)是将 rbac_init 迁移复制到您的迁移文件夹:

cp vendor/yiisoft/yii2/rbac/migrations/m???????_rbac_init.php console/migrations/

现在,当您运行时php yii migrate,它将包含rbac_init迁移。

于 2016-12-25T02:38:23.780 回答