Проблемы с миграцией Symfony Doctrine

#php #symfony1

#php #symfony1

Вопрос:

У меня странная проблема с Symfony (с установленным sfDoctrineGuardPlugin) и миграциями Doctrine. Что я делал до сих пор:

  • Я удалил базу данных и создал новую без таблиц
  • Я очистил все файлы модели
  • Я очистил кэш
  • запустите задачу symfony « doctrine:generate-migrations-db «

После этого, я думаю, что не должно быть различий между файлами базы данных и миграции. Затем я запустил « doctrine:generate-migrations-diff » и получил два новых файла с:

  1. Файл один
  2. Файл два

Для меня это было странно, потому что я не ожидал никаких различий, но я дважды запускал « doctrine:migrate --up » для двух миграций, сгенерированных ранее. Миграции завершены. И теперь, что меня смущает, так это тот факт, что каждый запуск « doctrine:generate-migrations-diff » генерирует точно такие же различия, как в двух файлах, которые я связал в этом сообщении.

Спасибо за любые предложения, Том

Ответ №1:

Это потому, что doctrine:generate-migrations-diff работает путем сравнения того, что находится в вашем файле schema.yml, с вашими классами модели.

Вам всегда нужно запускать

 symfony doctrine:build --all-classes 
  

после запуска symfony doctrine:migrate

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

1. Привет, я не уверен, что миграция работает так, как тебе грустно. Описание для этой задачи таково «:generate-migrations-diff Генерировать классы миграции, создавая разницу между вашей старой и новой схемой».

2. generate-migrations-diff сравнивает файлы schema yml с вашими существующими моделями.