yii migrate / up始终从start开始运行

时间:2017-01-21 09:31:51

标签: yii2 yii2-basic-app

当我在postgres驱动程序上创建新的迁移后运行下面的命令时,我收到错误迁移表已经存在。

Glyphicons

但第一次创建"迁移"表已经成功完成。

./yii migrate

似乎Yii2每次尝试从开始运行所有迁移,因为在新迁移中我正在创建其他表。它仍然抱怨移民表丢失。

1 个答案:

答案 0 :(得分:1)

我找到了一个使用web ui的Yii2应用程序的解决方案:

web/index.php中添加:

// Check if migration is required
$migrateHint = __DIR__.'/../runtime/do_migration';
if (file_exists($migrateHint)) {
    exec('php '.__DIR__.'/../yii migrate/up --interactive=0',$output,$exitCode);
    if ($exitCode || !@unlink($migrateHint)) {
        echo "migration failed. exitCode=$exitCode. Try again.\n";
        exit(1);
    }
}

使用exec的原因是:Yii2-App尚未初始化且无法使用。

不要忘记将__DIR__.'/../runtime/migration_ready作为文件添加到您的git repo中(内容无关紧要)。因此,每次签出新版本时,都会开始迁移。