Как удалять и перестраивать таблицы из моделей без потери данных с помощью Doctrine? - PullRequest
0 голосов
/ 11 ноября 2010

Я использую следующий код для построения своих таблиц из моих моделей:

Doctrine::createTablesFromModels();

Я только начинаю новый проект, и впервые использую Doctrine в приложении. Пока, так как я только начинаю и у меня нет никаких данных, я просто отбрасываю таблицы в phpMyAdmin и запускаю приведенный выше код каждый раз, когда меняю свои модели. Очевидно, что это не будет вариант в производственной среде.

Есть ли в Doctrine метод или блок методов, которые я могу вызвать, которые удалят и перестроят таблицы без потери существующих данных? Возможно, сначала сохранив его во временных таблицах? Если нет, какие у меня есть другие варианты для достижения того же результата?

Или я иду в совершенно неверном направлении, позволяя Doctrine генерировать мои таблицы? Должен ли я просто поддерживать их сам и обновлять свои отношения и столбцы в моих моделях?

Я использую Doctrine 1.2 с платформой CodeIgniter.

Ответы [ 2 ]

1 голос
/ 11 ноября 2010

Посмотрите на Doctrine Migrations, где можно записать изменения между версиями ваших моделей / схем.migrations / en

Лично я просто делаю изменения в своей схеме, а затем генерирую модели из этого.

0 голосов
/ 13 марта 2012

Я использую Doctrine2, вот что я делал в прошлом:

  1. Переименование таблицы в tablename_BAK
  2. Создание новых таблиц с доктриной
  3. Сделайте оператор INSERT SELECT, чтобы переместить ваши данные в таблицу.

Примечание :: это может стать проблематичным, если у вас определены триггеры.Также не является хорошей идеей для производственной площадки, за исключением случаев, когда используется тип «Не работает».

см. INSERT SELECT

...