Дополнительные changeColumns в Doctrine generate-migrations-diff - PullRequest
3 голосов
/ 06 декабря 2009

Я генерирую миграции между различными файлами схемы yaml: то есть выполняется:

доктрина Symfony: генерировать-миграции-diff

И полученный файл миграции содержит множество вызовов changeColumn, которые не были добавлены при последнем изменении файла схемы.

Например, если вы запустите generate-migrations-diff без изменения файла схемы, вы должны получить пустую функцию up (). Однако полученная для меня функция имеет вызов changeColumn практически для каждой таблицы в моей базе данных.

Я что-то не так делаю или это ошибка?

1 Ответ

10 голосов
/ 08 декабря 2009

Функция generate-migrations-diff не использует два разных файла yaml. Он фактически сравнивает ваши модели и ваш файл yaml, а затем генерирует миграцию на основе различий. Если вы начинаете с базы данных, синхронизированной с вашими yaml и классами, ваш рабочий процесс для внесения изменений в схему должен быть:

  1. Изменить файл yaml
  2. generate-migrations-diff для сравнения текущего (измененного) yaml с вашими (неизмененными) моделями. Это сгенерирует файл миграции в вашем каталоге doctrine / migrations (или в любом другом каталоге migrations_path, который указан в вашей конфигурации doctrine).
  3. migrate , чтобы запустить миграцию, созданную на шаге 2, и изменить базу данных
  4. generate-models-yaml для создания новых классов на основе вашего файла yaml. Они идут туда, куда вы указали ваши сгенерированные модели (models_path в вашей конфигурации доктрины).
  5. generate-sql для создания файла SQL. Это будет происходить там, где для вашей конфигурации sql_path доктрины установлено значение.
...