#php #symfony1
#php #symfony1
Вопрос:
У меня странная проблема с Symfony (с установленным sfDoctrineGuardPlugin) и миграциями Doctrine. Что я делал до сих пор:
- Я удалил базу данных и создал новую без таблиц
- Я очистил все файлы модели
- Я очистил кэш
- запустите задачу symfony «
doctrine:generate-migrations-db
«
После этого, я думаю, что не должно быть различий между файлами базы данных и миграции. Затем я запустил « doctrine:generate-migrations-diff
» и получил два новых файла с:
Для меня это было странно, потому что я не ожидал никаких различий, но я дважды запускал « 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 с вашими существующими моделями.