Я хочу использовать юг в своем проекте django в качестве инструмента миграции, но у меня проблема с использованием юга в многопользовательском сценарии:
Два разработчика, работающие одновременно на разных машинах, создают две миграции с одинаковым числом
-
на первом ПК:
0007_extend_lizard.py
-
на втором ПК:
0007_swap_name_adopter.py
В этом случае я могу запустить ./manage migrate --merge
или ./manage migrate 0006
(откат) и запустить снова ./manage migrate
. НО, когда я хочу добавить новое поле в models.py
и запустив ./manage startmigration southdemo --auto
, юг получит метаданные models = {}
от последней миграции, и у нее не было информации из первой миграции. Результатом этого является создание миграции 0008 с созданием снова (!!!) изменений с первого 0007.
Какой лучший способ решить эту проблему?
В настоящее время я думаю о двух вариантах:
-
Вручную объединить миграцию 0007 в один файл и затем выполнить миграцию (но кто-то должен выполнить "откат" )
-
Вручную переместите недостающую
models = {}
meta для последней миграции 0007, а затем следующий--auto
в 0008 будет работать отлично.
Какой лучший вариант? Или есть что-то еще, что мне не хватает?