Миграции Symfony Doctrine, как я могу использовать несколько менеджеров сущностей

Используя Symfony 2.5 и Doctrine 2.2, у меня есть несколько баз данных для приложения, над которым я работаю, давайте назовем одну «Основную», а другую «Вторичную». В настоящее время настроены два менеджера сущностей. В одной миграции я хочу создать таблицу в «Secondary», но она хочет создать таблицу только в «Main».

Миграция может быть ContainerAware, поэтому я могу получить другой EntityManager, но мне не удалось переопределить стандартное. Кто-нибудь может помочь? Заранее спасибо!

2

Решение

Просто пройдите --em параметр при генерации diff,

Пример:

php app/console doctrine:migrations:diff --em=uac # will use uac entity manager
php app/console doctrine:migrations:diff # will use the default entity manager

Чтобы исключить пользовательские таблицы из удаления, используйте:

doctrine:
dbal:
schema_filter: ~^(?!t_)~

согласно этот документ, в качестве альтернативы вы можете передать аргумент фильтра во время выполнения:

app/console doctrine:migrations:diff  --em=uac --filter-expression=/whatever/
2

Другие решения

Других решений пока нет …