Что делает доктрина: генерировать-миграции-разнятся? - PullRequest
4 голосов
/ 08 октября 2010

Эта функция предназначена для создания классов миграции доктрин на основе различий между старой и новой схемами.

Хорошо, где хранится старая схема, против которой система работает? Я в проекте Symfony, и в моих конфигах есть только один schema.yml.

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

Итак, я хотел вернуть все в первоначальное состояние, как если бы никогда не было миграции, я хочу, чтобы текущая схема / база данных была взята, как если бы это была версия 0, и был сделан новый класс миграции .

Однако ручной сброс моей БД и удаление классов миграции не работает, и сгенерированные классы diff настаивают на удалении таблиц, которых больше не существует.

Итак, я предполагаю, что где-то есть кэшированный файл со старыми данными схемы, с которыми он сравнивает?

Спасибо за любую помощь.

1 Ответ

4 голосов
/ 08 октября 2010

Ах ... ответ был здесь:

Дополнительные changeColumns в Doctrine generate-migrations-diff

Это не отличается от кэшированной схемы.yml, он сравнивается с вашими модельными классами.

Таким образом, решение для «сброса» процесса миграции было бы вручную синхронизировать вашу базу данных и модель (возможно, сбросив schema.yml к старой структуре, обновив модели, затем вручную вернув базу данных), затем всевернитесь в новые элементы схемы и запустите generate-migrations-diff.

Это сработало для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...