运行Yii用户扩展的迁移时出现“迁移目录不存在”错误

时间:2013-10-30 12:58:35

标签: php yii composer-php yii-extensions yii-migrations

我有Composer安装的Yii框架,public_html文件夹中的webapp和vendor文件夹中的所有库:

webroot
|
|_public_html
|
|_vendor
  |
  |_fierwebdesign
    |
    |_yii-user
      |
      |_migrations

我在console.php中的配置是:

'modules'=>array(
  'user'=>array(
     'hash' => 'md5',
      'sendActivationMail' => true,
      'loginNotActiv' => false,
      'activeAfterRegister' => false,
      'autoLogin' => true,
      'registrationUrl' => array('/user/registration'),
      'recoveryUrl' => array('/user/recovery'),
      'loginUrl' => array('/user/login'),
      'returnUrl' => array('/user/profile'),
      'returnLogoutUrl' => array('/user/login'),
    ),
),

当我尝试运行Yii用户扩展的迁移时,我收到错误:

yiic.php migrate --migrationPath=vendor.fierwebdesign.yii-user.migrations

Error: The migration directory does not exist: vendor.fierwebdesign.yii-user.migrations

我做错了什么?

3 个答案:

答案 0 :(得分:1)

您需要在配置中声明vendor别名。如果public_html/config/中的console.php不是声明:

Yii::setPathOfAlias('vendor', dirname(__FILE__) . DIRECTORY_SEPARATOR . '..' .
               DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '_vendor');

答案 1 :(得分:0)

也许这会有所帮助:

components配置文件中的console.php数组中写出类似的内容;

    'commandMap' => array(
        'migrate' => array(
            'class' => 'system.cli.commands.MigrateCommand',
            'migrationPath' => 'application.modules.user.migrations',
//            'migrationTable' => 'tbl_migration',
            'connectionID' => 'db',
//            'templateFile' => 'application.migrations.template',
        ),

然后输入命令:php migrate

此外,app/modules/user/migartion文件夹在这种情况下必须存在且必须包含migratio文件

答案 2 :(得分:0)

最好的猜测是migrationPath实际上指的是文件系统路径,而不是像你正在使用的别名