一旦工作,那就要努力的干,聪明的干,快速的干——用省下来的时间干自己喜欢干的事情。!

yii2通过migrate创建RBAC相关表时出错,报Exception ‘yii\base\InvalidConfigException’ with message ‘You should configure “authManager” component to use database before executing this migration.’

php lampnick 4038℃ 0评论

yii2通过migrate创建RBAC相关表时出错,

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

报错:

xxxx>yii migrate --migrationPath=@yii/rbac/migrations/ Yii Migrat
Yii Migration Tool (based on Yii v2.0.12)

Total 1 new migration to be applied:
 m140506_102106_rbac_init

Apply the above migration? (yes|no) [no]:yes
*** applying m140506_102106_rbac_init
Exception 'yii\base\InvalidConfigException' with message 'You should configure "authManager" component to use database before executing this migration.'
//提示我们说在执行这条migration之前让我们先配置下authManager组件
in xxxx\vendor\yiisoft\yii2\rbac\migrations\m140506_102106_rbac_init.php:27

Stack trace:
#0 xxxx\vendor\yiisoft\yii2\rbac\migrations\m140506_102106_rbac_init.php(50): m140506_102106_rbac_init->getAuthManager()
#1 xxxx\vendor\yiisoft\yii2\console\controllers\BaseMigrateController.php(671): m140506_102106_rbac_init->up()
#2 xxxx\vendor\yiisoft\yii2\console\controllers\BaseMigrateController.php(183): yii\console\controllers\BaseMigrateController->migrateUp('m140506_102106_...')
#3 [internal function]: yii\console\controllers\BaseMigrateController->actionUp(0)
#4 xxxx\vendor\yiisoft\yii2\base\InlineAction.php(57): call_user_func_array(Array, Array)
#5 xxxx\vendor\yiisoft\yii2\base\Controller.php(156): yii\base\InlineAction->runWithParams(Array)
#6 xxxx\vendor\yiisoft\yii2\console\Controller.php(128): yii\base\Controller->runAction('', Array)
#7 xxxx\vendor\yiisoft\yii2\base\Module.php(523): yii\console\Controller->runAction('', Array)
#8 xxxx\vendor\yiisoft\yii2\console\Application.php(180): yii\base\Module->runAction('migrate', Array)
#9 xxxx\vendor\yiisoft\yii2\console\Application.php(147): yii\console\Application->runAction('migrate', Array)
#10 xxxx\vendor\yiisoft\yii2\base\Application.php(380): yii\console\Application->handleRequest(Object(yii\console\Request))
#11 xxxx\yii(27): yii\base\Application->run()
#12 {main}

原因是配置不完整,解决方法:添加以下配置:

xxxx\console\config\main.php(之前配置在common\config\main.php,没有生效)

components下添加:

 'authManager' => [
 'class' => 'yii\rbac\DbManager',
 'defaultRoles' => ['guest'],
 ],

重新运行命令后成功。

yii migrate --migrationPath=@yii/rbac/migrations/
xxxx>yii migrate --migrationPath=@yii/rbac/migrations/
Yii Migration Tool (based on Yii v2.0.12)

Total 1 new migration to be applied:
 m140506_102106_rbac_init

Apply the above migration? (yes|no) [no]:yes
*** applying m140506_102106_rbac_init
 > create table {{%auth_rule}} ... done (time: 0.111s)
 > create table {{%auth_item}} ... done (time: 0.064s)
 > create index idx-auth_item-type on {{%auth_item}} (type) ... done (time: 0.020s)
 > create table {{%auth_item_child}} ... done (time: 0.040s)
 > create table {{%auth_assignment}} ... done (time: 0.030s)
*** applied m140506_102106_rbac_init (time: 0.414s)

1 migration was applied.

Migrated up successfully.

转载请注明:MitNick » yii2通过migrate创建RBAC相关表时出错,报Exception ‘yii\base\InvalidConfigException’ with message ‘You should configure “authManager” component to use database before executing this migration.’

喜欢 (4)or分享 (0)
头像
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址