У меня есть база данных (которая была создана с использованием Propel в приложении Symfony1). Я переоцениваю его в Symfony2 и Doctrine, но я также хочу воспользоваться возможностью для реорганизации базы данных.
Я определил набор Doctrine Entities и запустил doctrine: migrations: diff, который создал мне базовую миграцию для добавления таблиц, столбцов и ограничений и сбросил нагрузку на столбцы.
Однако перед удалением этих столбцов я хочу скопировать данные в некоторые из новых таблиц, а затем связать новые записи в этой таблице с новыми столбцами в первой таблице. Я не думаю, что это можно сделать в чистом SQL (в общем, содержимое одной таблицы распределяется между тремя или четырьмя таблицами).
Это дал мне подсказку и заставил меня найти this ( который я пропустил, потому что я понятия не имел, какая релевантность "контейнеров" может быть для моей проблемы).
Но то, что я не нашел нигде в документации по Symfony или Doctrine, является примером фактического перемещения данных во время миграции, что для меня, по-видимому, является одной из основных целей миграции!
Возможно, что я мог использовать подсказки в этих ссылках выше, но тогда я не уверен, как действовать дальше. У меня нет (и на самом деле не хочу тратить время на создание, хотя я уверен, что могу это сделать) Объекты Doctrine для существующей схемы базы данных: могу ли я затем использовать DQL? Я просто не знаю.
Итак, два вопроса:
-
Может ли кто-нибудь дать мне пример миграции Doctrine, которая перемещает данные между таблицами?
-
В качестве альтернативы, может ли кто-нибудь выяснить, насколько зависим синтаксис DQL от определений сущностей в доктрине? Могу ли я использовать его для указания столбцов, которые не указаны в определениях Entity?