Для разработки у нас есть одна консольная команда 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, и она не нужна в этом сценарии. Предполагая, что он просто загружен в объект миграции.
Может ли кто-нибудь предложить свой вклад, если я делаю что-то не так, возможно, это где-то ошибка.
Запуск Symfony 2.2.* и пакет миграций с помощью dev-master.