对于开发,我们有一个 Symfony 控制台命令,它执行其他控制台命令以重建数据库、运行固定装置等。
作为该过程的一部分,我需要运行一些精心挑选的学说迁移命令,但由于某种原因,我无法在同一进程中运行多个执行命令。
为了确认,我可以手动运行这些任务而不会出现问题,并且可以在控制台执行中运行其中一个命令,然后手动运行另一个命令而不会出现问题。
$this->getApplication()->run(new ArrayInput(array(
'command' => 'doctrine:migrations:execute',
'version' => '20140310162336',
'--no-interaction' => true
)), $output);
$this->getApplication()->run(new ArrayInput(array(
'command' => 'doctrine:migrations:execute',
'version' => '20140310170437',
'--no-interaction' => true
)), $output);
返回的错误是:
[Doctrine\DBAL\Migrations\MigrationException]
Migration version 20140310162334 already registered with class Doctrine\DBAL\Migrations\Version
作为存在的第一个版本文件的版本,可以确认该版本不在 migration_versions 表中,在这种情况下也不需要。建议它只是加载到迁移对象中。
如果我做错了什么,如果这可能是某个地方的错误,任何人都可以提供输入。
使用 dev-master 运行 Symfony 2.2.* 和迁移包。