Architecture
This page will describe the process and the decisions taken by the creators of this package.
Resetting local files
The command for resetting your local migration files will iterate your Django app directory and looks for packages containing migration.
Then it detects all migration files, optionally leaving out the initials.
In the next step, every detected file will be deleted. You can run the process as a dry run, which won’t delete the files.
Finally, the command calls Django’s “makemigrations” to recreate the migration files neat and clean.
Handle database adjustments
This command will first validate that the migration configuration database singleton (exactly one record in the database) exists and is valid
Afterward, it checks if the flag is active and the migration date is set to “today”
Then it will fetch the list of local Django apps and delete all records in the history table
django_migrations
whereapp
equals current app label. Due to working a little around the framework, it’s not possible to usemigrate [APP] --prune
ormigrate --fake [APP] zero
In the next step, we’ll populate the migration table with
migrate --fake
which will create a record per detected migration fileTo ensure we have a clean state by now, we ask for Django’s opinion via
migrate --check
If the check passes, we disable the admin flag to avoid staring the process for the next deployment again