Миграции django и веток git при одновременной работе над несколькими функциями

В Django при работе над несколькими новыми функциями одновременно, какой лучший способ обработки миграций базы данных с помощью git?
(как в python manage.py makemigrations, и python manage.py migrate, которые используются для обновления базы данных после изменения файла models.py)

Я нахожусь в середине работы над функцией1, в отдельной ветке. Теперь мне нужно создать feature2 и перенести ее в продакшн.

Должен ли я:

  1. fork new feature2 branch off of production, create feature2, merge back to prod, migrate.

  2. fork new feature2 branch off of production, create feature2, migrate, merge back to prod.

Или каким-то другим способом?

А когда я вернусь к feature1, что мне делать, чтобы убедиться, что все будет актуально?

Если вы используете инструмент миграции баз данных с помощью командной строки в сочетании с git, вы можете воспользоваться преимуществами up и downs SQL скриптов.

Допустим, вы хотите добавить некоторые изменения в вашу БД, через инструмент миграции вы можете определить namescript1-up.sql и namescript1-down.sql, и вы можете проверить определенную версию базы данных из командной строки (после проверки git).

Например, я использую golang-migrate для своих приложений на go (я думаю, его можно использовать для любого языка при использовании командной строки).

В любом случае, я бы сказал, что это неправильное использование инструмента миграции, который больше подходит для применения скриптов, касающихся только изменений схемы, а не обычных sql-операторов INSERT или UPDATE.

Я бы предложил поработать над контейнерной версией вашей БД, чтобы вы могли уничтожить и воссоздать что угодно в полете.

Вернуться на верх