For each of your applications:
1) Pretend rollback of all existing moves:
./manage.py migrate app zero
The zero argument indicates that we are rolling back the first migration. You can confirm that all migrations have been discarded by running ./manage.py migrate app --list . The signals of the --fake option we should not start the migration, but nevertheless note that the migrations were performed: https://docs.djangoproject.com/en/1.8/ref/django-admin/#django-admin-option--- fake
2). Delete migration files
git rm app/migrations/*
3) Create a new migration file
./manage.py makemigrations app
4) Imagine to perform a new migration
./manage.py migrate app
As in 1), stage 4) does not actually perform migration.
EDIT: some clarification added and zero argument fixed.
source share