当我在postgres驱动程序上创建新的迁移后运行下面的命令时,我收到错误迁移表已经存在。
Glyphicons
但第一次创建"迁移"表已经成功完成。
./yii migrate
似乎Yii2每次尝试从开始运行所有迁移,因为在新迁移中我正在创建其他表。它仍然抱怨移民表丢失。
答案 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中(内容无关紧要)。因此,每次签出新版本时,都会开始迁移。