Проект Symfony Propel: Как обновить схему без перезагрузки базы данных? - PullRequest
1 голос
/ 05 февраля 2010

Я развернул свой проект Symfony на сервере, и теперь я хочу изменить модели внутри schema.yml, не перезагружая другие несвязанные таблицы базы данных и сохраняя текущие данные. Есть ли какая-либо функция сравнения / обновления для проекта Symfony Propel?

Ответы [ 2 ]

2 голосов
/ 06 февраля 2010

Взгляните на sfPropelSqlDiffPlugin (доступно из хранилища плагинов). Я использовал его в течение долгого времени, и он работал хорошо для меня. Он не идеален (он не очень хорошо справляется с нестандартными вещами, такими как, например, указание sqltype в вашей схеме), но он значительно облегчил мне жизнь.

Вместо того, чтобы доверить плагину фактическое выполнение проверенного SQL, я предпочитаю:

. / Symfony propel: build-sql-diff

Это создает файл SQL в вашем каталоге данных, который вы затем можете просмотреть / отредактировать перед выполнением сценария вручную.

1 голос
/ 05 февраля 2010

Вы можете создать sql с помощью команды propel: build-sql. Результатом является действительный файл SQL, который вы можете импортировать самостоятельно. В нашем очень большом проекте мы просто отслеживаем сам SQL. Мы строим модели и генерируем SQL. Затем мы копируем новый сгенерированный SQL в файл, содержащий SQL для нашей версии. Позаботьтесь о SQL, где таблицы изменяются, а не создаются, поскольку вы должны вручную изменить эту таблицу.

Это невозможно сделать из Symfony afaik.

...