Отдельная база данных в Django для каждой ветки git

В работе с Django я часто сталкиваюсь с такой ситуацией: создаю ветку, в которой хочу поменять структуру базы, добавить или удалить модели. При этом существует вероятность, что в процессе работы над этой веткой мне понадобится переключиться на другую ветку, которая завязана на другую структуру данных.

Было бы хорошо, чтобы для определённых веток создавались отдельные копии базы и чтобы всё это работало автоматически.

Я написал небольшой сниппет, который позволяет использовать отдельную базу данных для определённых веток git.

Он работает только с PostgreSQL. При этом можно указать ветки, для которых нужно создавать копии. Для всех остальных веток используется дефолтная база. Базы создаются автоматически на основе текущего состояния дефолтной базы.

Всё, что нужно, это добавить следующий код в ваш файл с настройками Django (settings.py):