【问题标题】:"migration directory does not exist" error when running Yii-user extension's migrations运行 Yii 用户扩展的迁移时出现“迁移目录不存在”错误
【发布时间】:2023-03-15 02:34:01
【问题描述】:

我有一个由 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

我做错了什么?

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      也许这会有所帮助:

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

          '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 文件夹在这种情况下必须存在并且必须包含迁移文件

      【讨论】:

      • 没有。因为 Yii-user 模块不在文件夹 modules.user 中。 Yii-User 安装在 vendor.fierwebdesign.yii-user.migrations 中。如果我用我的路径写这个:错误:迁移目录不存在:vendor.fierwebdesign.yii-user.migrations
      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-01-06
        • 2018-03-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-01
        • 1970-01-01
        相关资源
        最近更新 更多