Проблема
с югом и командным рабочим процессом возникает, когда два человека создают миграцию без синхронизации друг с другом.
Представьте, что у нас есть репо.Люди A и B клонируют его, затем изменяют какую-то модель, создают миграцию и затем отодвигают все это назад.У нас будет 2 миграции с одинаковым номером в репо.
Юг будет жаловаться, если вы попытаетесь выполнить миграцию с такой историей.
Inconsistent migration history
The following options are available:
--merge: will just attempt the migration ignoring any potential dependency conflicts.
Как указано в южных документах http://south.readthedocs.org/en/latest/tutorial/part5.html вы можете попытаться использовать опцию --merge, а south попытается объединить миграции.Он потерпит неудачу, если конфликтующие миграции изменили одну и ту же модель (ы).
./manage.py schemamigration --auto --merge appname
Таким образом, основное правило для команды: одно время только один разработчик может изменить одну модель.Если кто-то начал менять модель, то никто не должен ее трогать, пока у него не появятся обновленные файлы миграции.
Правила для командного рабочего процесса с южными и несколькими ветками git:
- Перед внесением изменений вДвойная проверка модели, если кто-то уже вносит изменения там
- Уведомляйте других участников о ваших изменениях как можно скорее
- Синхронизируйте ваши каталоги миграции как можно скорее
Также из южных документов: когда вы тянетев чьих-либо изменениях модели, выполненных вместе с их собственной миграцией, вам нужно будет сделать новую пустую миграцию, в которой зафиксированы изменения из обеих ветвей разработки (если вы использовали Mercurial, это эквивалентно коммиту слияния).Для этого просто запустите:
./manage.py schemamigration --empty appname merge_models
merge_models есть только новое имя миграции
Правила для командного рабочего процесса с южной и одиночной веткой git:
Если вся ваша командачлены переходят на одну ветвь, тогда лучшая стратегия будет состоять в том, чтобы сначала внести изменения в модель, выполнить миграцию и протолкнуть ее как можно скорее.Тогда поработайте над другим кодом.
Эта статья также может быть вам интересна:
http://andrewingram.net/2012/dec/common-pitfalls-django-south/ http://anthony -tresontani.github.io / Django / 2013 /03/15 / юго-технологический процесс /