Общепринятой практикой является то, что люди, работающие над проектом django, обычно перенаправляют миграцию в систему управления версиями вместе с другим кодом.Почему необходимо перенаправить миграции django в систему управления версиями
Мой вопрос: почему эта практика так распространена? Почему бы просто не нажимать обновленные модели, и каждый из них генерирует миграцию локально. Такой подход может уменьшить усилия для разрешения конфликтов миграции.
Примером может быть: person A создал ветку из 'master' и создал новую миграцию' 0010', человек B создал ветку из 'master' и создал новую миграцию' 0010'. Объединенный, чтобы развиться раньше, чем B, когда B вытащил последнее изменение и попытался объединить свой код с «мастером», он получил двойную миграцию. Если вы не отслеживаете миграцию, B будет очень смущен. –
OP предполагает, что подталкивание файлов моделей и генерация миграции из них должны позаботиться об этом. Я сам это задался. Устранение непоследовательных миграций, особенно для разделяемых отраслей и незавершенного производства, было огромной тратой времени. Я вижу пункт @ alasdair ниже о автоматическом населении (это единственное исключение, которое имеет смысл для меня, хотя оно не применяется, если вы используете фабрики вместо пользовательских миграций).Мне бы хотелось увидеть лучшие предложения по лучшим методам предотвращения конфликтов миграции и/или лучшим инструментам их решения. Например, – szeitlin
, я просто столкнулся с проблемой, которую я довольно часто встречаю, когда отсутствуют зависящие от слияния при попытке миграции. Проблема заключается в том, что файлы миграции в отдельных приложениях не всегда синхронизируются между ветвями. Ошибки django не дают вам полный путь к файлу миграции, вызвавшему проблему, только номер. #fail – szeitlin