Миграции django и веток git при одновременной работе над несколькими функциями
В Django при работе над несколькими новыми функциями одновременно, какой лучший способ обработки миграций базы данных с помощью git?
(как в python manage.py makemigrations
, и python manage.py migrate
, которые используются для обновления базы данных после изменения файла models.py
)
Я нахожусь в середине работы над функцией1, в отдельной ветке. Теперь мне нужно создать feature2 и перенести ее в продакшн.
Должен ли я:
fork new feature2 branch off of production, create feature2, merge back to prod, migrate.
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.
Я бы предложил поработать над контейнерной версией вашей БД, чтобы вы могли уничтожить и воссоздать что угодно в полете.