【问题标题】:Error Running yii migrate after cloning克隆后运行 yii migrate 出错
【发布时间】:2016-07-04 08:24:34
【问题描述】:

我正在使用 Yii2 的基本模板。我创建了项目并将其上传到 github,以便其他开发人员可以克隆并开始贡献。

克隆并运行 composer install 后,当我尝试运行 yii migrate 时出现此错误。

λ php yii migrate
Yii Migration Tool (based on Yii v2.0.8)

Total 1 new migration to be applied:
        m160704_071418_user_table

Apply the above migration? (yes|no) [no]:yes
*** applying m160704_071418_user_table
PHP Fatal Error 'yii\base\ErrorException' with message 'Class 'm160704_071418_user_table' not found'

in C:\wamp\www\miespacio\vendor\yiisoft\yii2\console\controllers\MigrateController.php:170

Stack trace:
#0 [internal function]: yii\base\ErrorHandler->handleFatalError()
#1 {main}

我的问题是:我是否缺少任何步骤来完成这项工作?任何帮助将不胜感激,谢谢。

可能有用的信息:我可以创建新的迁移并在克隆后正常运行它们。问题在于运行现有的迁移。

【问题讨论】:

  • 您是否更改了文件名?文件名和类名必须相同才能正常工作。
  • 只是尝试再次从作曲家重新安装项目。并且不要更改迁移名称。

标签: yii2 yii2-basic-app yii-migrations


【解决方案1】:

您应该通过yii migrate/create <migration-name> 命令创建迁移。并且不要更改迁移的文件名或类名。

示例:创建迁移添加测试表

yii migrate/create create_test_table

运行该命令后,您将在@app/migrations 中拥有一个 php 文件

文件名:m160704_110735_create_test_table.php

代码生成器:

<?php

use yii\db\Migration;

/**
 * Handles the creation for table `test_table`.
 */
class m160704_110735_create_test_table extends Migration
{
    /**
     * @inheritdoc
     */
    public function up()
    {
        $this->createTable('test_table', [
            'id' => $this->primaryKey(),
        ]);
    }

    /**
     * @inheritdoc
     */
    public function down()
    {
        $this->dropTable('test_table');
    }
}

记住:不要更改文件名或类名。

祝你好运,玩得开心!

【讨论】:

  • 这个答案提示我检查类名,果然它与文件名不同。我更新了类名以匹配文件名,我又重新开始工作了。谢谢大家。
猜你喜欢
  • 2013-10-28
  • 2021-07-27
  • 1970-01-01
  • 2015-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-22
相关资源
最近更新 更多