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