Почему при миграции БД в Symfony2 с помощью DoctrineMigration изменяется то, что не изменялось?
Всем привет.
Столкнулся с проблемой, нашел что в Symfony2 есть удобный bundle для миграции бд DoctrineMigrationBundle, но почему-то он все комментарии зануляет и дропает колонку со всем содержимым, при ее переименовании, что вообщем-то не совсем правильно, плюс зачем-то дропает и заново создает все ключи. Как делать правильно миграцию бд на продакшн, неужели придется писать свое решение?
Возможно я неправильно понял как их готовить. Вы имеете ввиду, что нужно все изменения самому вручную вписывать в сгенерированный пустой скрипт миграции?
@mind3 нет, я обычно делаю migration:diff который генерит вам миграцию на основе разницы текущего состояния базы данных и того что у вас в мэппинге описано (да, если вы сначала вносите в базу правки и потом пишете миграцию то работать это не будет). Затем я просто дописываю туда то, что нужно. Например перенос данных, их модификация или чего еще. Обычно я стараюсь не делать изменения в структуре такие, что требуется как-то что-то делать с данными в таблицах, но иногда приходится.
Ситуация с удаляет и создает индексы больше похоже на действие schema:update так как оно меняет названия индексов. В любом случае вам стоит разобрсять в том SQL который генерит вам doctrine.
И да, если вы не поняли что я написал или ваш процесс отличается, распишите, возможно вы что-то делаете по другому и из-за этого у вас проблемы.