Каковы наилучшие методы управления миграцией?
Например, при отладке переноса вы редактируете первоначальную миграцию или добавляете миграцию редактирования перед тем, как совершить переход в репозиторий? Спасибо!
Каковы наилучшие методы управления миграцией?
Например, при отладке переноса вы редактируете первоначальную миграцию или добавляете миграцию редактирования перед тем, как совершить переход в репозиторий? Спасибо!
Я имею тенденцию редактировать исходную миграцию, пока она: a) последняя миграция и b) не в исходном управлении. Это представляет собой чистый путь миграции для всех других потребителей кода. Важно то, что ваши миграции должны иметь возможность запускать без ошибок из любого состояния базы данных, которое раньше можно было встретить.
Начните тестирование своих миграций.
http://blog.carbonfive.com/2011/01/27/start-testing-your-migrations-right-now/
Если вы работаете с несколькими разработчиками, редактирование существующей миграции может быть опасным.
Если ваш коллега уже перенесла первоначальную миграцию, тогда, когда он уточнит, он не подберет новый код, и веселье начнется. Это очень сложная проблема для отслеживания. Ошибка на стороне того, чтобы быть хорошим denizen и просто создать обновленную миграцию.
Только редактируйте существующую миграцию, если вы можете убедиться, что она еще не была запущена другими разработчиками или какой-либо автоматической настройкой сборки. Чтобы быть в безопасности, вы не должны редактировать файл с измененной миграцией, если ошибка не была настолько серьезной, что миграция не выполнялась в первую очередь (в этом случае, почему вы ее совершили?)
Кроме того, необходимо соблюдать особую осторожность при вызове кода миграции из другого места в вашем приложении, чтобы при их запуске они запускались с использованием правильной версии кода. В противном случае тонкие изменения в ваших моделях могут действительно испортить ваши предыдущие миграции.
Даже после прочтения этого и ответов ниже, я просто усвоил трудный путь. Не редактировать оригинал. В конечном итоге вы теряете контроль над процессом разработки, и вам сложно вернуться под контроль.