great-scott
great-scott
is a tool that can automatically reverse migrations in a Django project, when switching between different GIT branches.
Installation
great-scott
can be installed in 2 easy steps:
-
Install the tool
I recommend installing via pipx:
pipx install great-scott
Alternatively, having the project's virtual-env activated, you can of course install the tool directly into virtual-env:
python -m pip install great-scott
-
Setup GIT hooks
After successful installation, while in the GIT-managed project folder and with virtual-env activated, execute:
great-scott install
Usage
Reversing migrations should simply work when the GIT branch is changed:
$ git checkout mig-test
Switched to branch 'main'
👀 Looking for migrations to reverse on mig-test...
⚠️ reversing migrations for importer (up to 0015)
⚠️ reversing migrations for permissions (up to 0018)
⚠️ reversing migrations for subscriptions (up to 0044)
I have reversed migrations for 3 apps!
Removing GIT hooks
To remove the GIT hooks, execute the command (while in the project directory and with virtual-env activated):
great-scott uninstall