Search code examples
phpyii2user-management

Yii2.0 user-management Module Migrations Error


I am trying to install user-management module in Yii2. I am getting an error while running the migrations command for this module.

Here is the fresh Stack trace from my terminal:

$ sudo php yii migrate --migrationPath=vendor/webvimark/module-user-management/migrations
Yii Migration Tool (based on Yii v2.0.3)

Total 10 new migrations to be applied:
    m140608_173539_create_user_table
    m140611_133903_init_rbac
    m140808_073114_create_auth_item_group_table
    m140809_072112_insert_superadmin_to_user
    m140809_073114_insert_common_permisison_to_auth_item
    m141023_141535_create_user_visit_log
    m141116_115804_add_bind_to_ip_and_registration_ip_to_user
    m141121_194858_split_browser_and_os_column
    m141201_220516_add_email_and_email_confirmed_to_user
    m141207_001649_create_basic_user_permissions

Apply the above migrations? (yes|no) [no]:yes
*** applying m140608_173539_create_user_table
Exception: Trying to get property of non-object (/var/www/html/***/vendor/webvimark/module-user-management/migrations/m140608_173539_create_user_table.php:16)
#0 /var/www/html/***/vendor/webvimark/module-user-management/migrations/m140608_173539_create_user_table.php(16): yii\base\ErrorHandler->handleError(8, 'Trying to get p...', '/var/www/html/m...', 16, Array)
#1 /var/www/html/***/vendor/yiisoft/yii2/db/Migration.php(81): m140608_173539_create_user_table->safeUp()
#2 /var/www/html/***/vendor/yiisoft/yii2/console/controllers/BaseMigrateController.php(492): yii\db\Migration->up()
#3 /var/www/html/***/vendor/yiisoft/yii2/console/controllers/BaseMigrateController.php(129): yii\console\controllers\BaseMigrateController->migrateUp('m140608_173539_...')
#4 [internal function]: yii\console\controllers\BaseMigrateController->actionUp(0)
#5 /var/www/html/***/vendor/yiisoft/yii2/base/InlineAction.php(55): call_user_func_array(Array, Array)
#6 /var/www/html/***/vendor/yiisoft/yii2/base/Controller.php(151): yii\base\InlineAction->runWithParams(Array)
#7 /var/www/html/***/vendor/yiisoft/yii2/console/Controller.php(91): yii\base\Controller->runAction('', Array)
#8 /var/www/html/***/vendor/yiisoft/yii2/base/Module.php(455): yii\console\Controller->runAction('', Array)
#9 /var/www/html/***/vendor/yiisoft/yii2/console/Application.php(161): yii\base\Module->runAction('migrate', Array)
#10 /var/www/html/***/vendor/yiisoft/yii2/console/Application.php(137): yii\console\Application->runAction('migrate', Array)
#11 /var/www/html/***/vendor/yiisoft/yii2/base/Application.php(375): yii\console\Application->handleRequest(Object(yii\console\Request))
#12 /var/www/html/***/yii(23): yii\base\Application->run()
#13 {main}
*** failed to apply m140608_173539_create_user_table (time: 0.004s)


Migration failed. The rest of the migrations are canceled.

I am not sure, what am I doing wrong here.


Solution

  • Make sure you included module in your application config:

    'modules' => [
        'user-management' => [
            'class' => 'webvimark\modules\UserManagement\UserManagementModule',
            // Here you can set your handler to change layout for any controller or action
            // Tip: you can use this event in any module
            'on beforeAction' => function (\yii\base\ActionEvent $event) {
                if ($event->action->uniqueId == 'user-management/auth/login') {
                    $event->action->controller->layout = 'loginLayout.php';
                };
            },
        ],
    ],
    

    It's covered in extension readme.

    It's falling when accessing non-existing module in this line:

    $this->createTable(Yii::$app->getModule('user-management')->user_table, array(