Как лучше всего делать небольшие обновления схемы с помощью Doctrine / Symfony?

Как лучше всего внести небольшие обновления схемы в ваше приложение symfony / doctrine?

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

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

Единственный мой выбор:

  1. вносить изменения в файл схемы и стирать базу данных после каждого изменения схемы -или-
  2. обновить файл схемы и вручную запустить операторы alter на моей базе данных

В конечном итоге, я бы хотел либо внести изменения в свою базу данных и дать symfony выяснить, как должен выглядеть файл схемы, либо внести изменения в файл схемы и попросить symfony выяснить, какие новые изменения внести в существующий файл. база данных.

Пожалуйста помоги!

Спасибо. Первый раз использую SO, не могу дождаться, чтобы увидеть, получу ли я ответ!


person Josh Nankin    schedule 24.11.2009    source источник
comment
Вам следует попробовать ./symfony doctrine: data-dump - выгружает данные из doctrine в yaml, которые вы можете сохранить как фикстуры, если хотите.   -  person benlumley    schedule 24.11.2009


Ответы (2)


Взгляните на этот пост:

Можно ли сгенерировать миграцию из существующей таблицы с помощью Доктрина?

и эта ссылка: http://www.doctrine-project.org/documentation/cookbook/1_0/en/code-igniter-and-doctrine:setup-command-line-interface

Мы генерировали изменения из doctrine, изменяя файл yaml, выполняя команду doctrine с параметром generate-migrations-diff для создания файла миграции, а затем используя параметр migrate для переноса изменения.

person Arthur Frankel    schedule 24.11.2009

Я точно знаю, что ты имеешь в виду. Есть два способа сообщить Symfony, как выглядит ваша структура базы данных:

  1. Создайте файл yaml -> запустите команду build-sql -> запустите команду insert-sql
  2. Создайте базу данных в своей СУБД -> запустите команду build-schema

При использовании метода 1 ваши данные каждый раз стираются. При использовании метода 2 ваши данные остаются нетронутыми. Единственная проблема с методом 2 заключается в том, что вы сотрете все специфические для доктрины атрибуты, которые были в вашем yaml-файле, и вам придется добавить их обратно. задницу, чем перезагружать данные в базу данных.

person Jason Swett    schedule 23.04.2010