Как управлять миграциями Django с контролем версий в одной команде? - PullRequest
1 голос
/ 08 мая 2020

Мы небольшая команда разработчиков, работающая над проектом Django 3 с контролируемой версией. Нас беспокоит использование миграций и возможность перезаписи файлов миграции друг друга.

Варианты, которые мы рассмотрели:

  • Использование опции --name / -n для makemigrations, чтобы иметь соглашение об именах, но это кажется громоздким
  • Django документация упоминает инструменты для контроля версий, но я не вижу подробностей об этом.

Как другие группы справляются с этим?

1 Ответ

2 голосов
/ 08 мая 2020

Использование контроля версий (git, et c.) Решит вашу проблему.

Просто убедитесь, что разработчики работают с веткой, а не непосредственно с мастером. Таким образом, миграции будут видны, и в случае конфликта git сообщит вам, когда вы попытаетесь выполнить слияние с основной веткой. Это еще более очевидно, если вы используете GitHub, поскольку вы можете видеть конфликты в пользовательском интерфейсе для запроса на вытягивание.

Единственная проблема, с которой вы столкнетесь, заключается в том, что две миграции генерируются в одном приложении в двух PR . Тот, который объединяется с мастером последним, вызовет проблему, так как будет несколько конечных узлов, но это можно легко решить с помощью ./manage.py makemigrations --merge, и в идеале вы должны запустить ./manage.py makemigrations --check, чтобы увидеть, есть ли проблемы, прежде чем объединять материал - в непрерывная интеграция, например.

...