Actually, what I do is:
I want to know if there's another way to do this.
There is a solution: run migrations 2 and 3 backwards with ./manage.py migrate my_app 0001 , then delete migration files. If you can't migrate back (e.g. you messed up with your database manually) then you can fake migrate back with ./manage.py migrate my_app 0001 --fake and set up database as it should be manually.
Undoing Migrations With migration you can revert to old state by just running a command. You can use db:migrate:undo , this command will revert most the recent migration. You can revert back to the initial state by undoing all migrations with the db:migrate:undo:all command.
You can revert back by migrating to the previous migration. See the migrations folder of your app and then see all the migrations
Say for an example, if your migrations are something like below ordered number wise and latest migration 0012_latest_migration is applied currently.
0010_previous_migration 0011_next_migration 0012_latest_migration
And You want to go back to 0010_previous_migration
./manage.py migrate my_app 0010_previous_migration
and then you can delete all migrations after that like here delete both 0011_next_migration and 0012_latest_migration as you already applied 0010_previous_migration.
If you're using Django 1.8+, you can show the names of all the migrations with
./manage.py showmigrations my_app
To reverse all migrations for an app to initial or start, you can run:
./manage.py migrate my_app zero
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With