Ответ 1
Юг документация рассказывает об этой проблеме:
Проблема с командами и миграциями возникает, когда более одного человека делает миграцию в одном и том же временном интервале, и оба они совершают без применения другого. Это аналогично двум людям одновременно редактируя один и тот же файл в VCS, и как VCS, South имеет способы решения проблемы.
Если это произойдет, первое, что нужно отметить, это то, что Юг обнаружит проблемы и выпустить такое сообщение:
Inconsistent migration history The following options are available: --merge: will just attempt the migration ignoring any potential dependency conflicts.
Если вы перезапустите мигрировать с помощью
--merge
, Юг просто применит миграции, которые отсутствовали вне очереди. Обычно это работает, как команды работают над отдельными моделями; если это не так, вам нужно посмотрите на фактические изменения миграции и разрешите их вручную, так как вероятно, они будут конфликтовать.Второе, что нужно отметить, это то, что когда вы тянете кого-то elses изменения модели в комплекте с их собственной миграцией, вам нужно сделать новая пустая миграция, которая имеет изменения из обеих ветвей (если вы использовали меркурий, это эквивалентно фиксация слияния). Для этого просто запустите:
./manage.py schemamigration --empty appname merge_models
(Обратите внимание, что
merge_models
- это просто имя миграции, измените его для что бы вы ни хотели)Важное сообщение здесь состоит в том, что Юг не заменяет команду координация - на самом деле, большинство функций существуют исключительно для предупреждения вы, что вы не согласны, и простое слияние на только там для простых случаев. Убедитесь, что ваша команда знает, кто работает на что, поэтому они не записывают миграции, которые затрагивают одни и те же части DB в то же время.