Как вы справляетесь с Doctrine Migrations при использовании Git? - PullRequest
10 голосов
/ 19 апреля 2011

У меня есть проект Zend Framework / Doctrine 1.2, источник которого контролируется git. Как вы отслеживаете классы миграции при переходе с ветки на ветку в git?

Например

В ветке A У меня есть файл класса миграции (038_version.php)

В ветке B У меня есть файл класса миграции (039_version.php)

Doctrine будет применять миграции последовательно на основе имени файла, поэтому мне нужно выдвинуть функции в ветви A перед веткой B, чтобы заставить миграцию Doctrine работать.

Должен ли я просто сохранить все миграции в отдельной ветке и изменить цифры, прежде чем начать работу?

Ответы [ 2 ]

1 голос
/ 19 апреля 2011

Поскольку существует ветвь, чтобы изолировать усилия по разработке , если вы задаете задачу, зависящую от нескольких ветвей, указанные ветки мешают.
Может быть, лучше объединить все эти веткив ветви развертывания, чтобы визуализировать соответствующие файлы для работы с Doctrine.

NDM любезно указывает на " Миграция базы данных в сложной системе ветвления "чтобы лучше проиллюстрировать вопрос ОП:

Вы можете заставить его работать для простых шаблонов ветвления, но для чего-то сложного это будет кошмаром.

Система, с которой я работаютеперь использует другой подход: у нас нет возможности делать инкрементные миграции, а только перестраивать базу данных из базовой линии

NDM добавляет:

Это просто невозможноправильно выполнять последовательные миграции в разветвленной системе

0 голосов
/ 15 июня 2016

Если у вас есть такой сценарий, у вас никогда не будет синхронизированных ветвей.Кроме того, если у вас есть чистая БД, такая как запуск, вам не нужны миграции, просто удалите их на работающем сайте и запустите

migrations:diff

, и это создаст новую миграцию для БД, и выигра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...