В symfony 1.4 есть ли способ переопределить или расширить части сгенерированной schema.yml?

#symfony1 #doctrine

#symfony1 #доктрина

Вопрос:

Мы используем symfony 1.4 с doctrine. Из-за характера нашей разработки нам троим, работающим над этим проектом, необходимо каждое утро обновлять нашу схему, модель, формы и фильтры.

Я хочу сохранить таблицу, установленную в схеме как «версионную». Если я повторно сгенерирую схему с помощью php symfony doctrine:build-schema , в результирующем файле actAs: больше не будет, и мне нужно скопировать и вставить перед повторной генерацией моей модели, форм и фильтров.

Есть ли способ расширить schema.yml , чтобы мы могли избежать копирования и вставки фрагмента кода каждое утро, чтобы сохранить эту конфигурацию постоянной? Если да, то как далеко мне нужно зайти в файле расширения? Например, могу ли я включить только actAs: для этой отдельной таблицы или мне нужно определить таблицу целиком?

Комментарии:

1. Почему вы создаете schema.yml из своей базы данных, когда вы могли бы сделать наоборот?

2. Быстрый ответ заключается в том, что это не тот способ, которым мы хотим это сделать. Каждый из нас работает над независимыми локальными копиями основной базы данных, и мы не хотим изменять эту основную базу данных до завершения нашей локальной разработки и тестирования модуля, но мы хотим иметь возможность обновлять нашу локальную базу данных с зафиксированными изменениями. До сих пор импорт измененных / добавленных таблиц работал нормально. Возможность изменения версий — это единственная загвоздка.

Ответ №1:

При регенерации вашей модели вы восстанавливаете только базовые * файлы. Расширение метода setup(), содержащегося в базовых * классах, в * классах (вы можете найти их в одном каталоге выше) может быть решением для постоянного добавления вам версионного поведения. Но я думаю, что наиболее удобным было бы импортировать измененную схему.yml вместо измененных таблиц, если только вы не хотите потерять свои данные. Не можете ли вы применить версию своей схемы.yml только для машин разработки с использованием ветки?

Комментарии:

1. Расширение метода SetUp() сработало именно так, как мне было нужно. Спасибо за вашу помощь!