You made changes to a model and made migrations, but you’ve realized it wasn’t the right thing to do and would like to revert. How can you do that without making a new migration?
How can you revert the last migration in Django?
You can reverse a migration using the
migrate command with the number of the previous migration.
Let’s say you have an app called
You can see a list of all the migrations in the migrations folder or by running the following command:
python manage.py showmigrations recipes
You may have the following migrations in your
If you want to undo the
0003_recipeindex migration, you can do it like so:
python manage.py migrate recipes 0002_recipepage
You can shorten the command by leaving out the full migration name. Just use the migration number:
python manage.py migrate recipes 0002
Make sure that everything is working the way it should, then you can delete
If you want to reverse all migrations for your app, you can use the name
zero, like so:
python manage.py migrate recipes zero
Keep in mind that certain irreversible operations can make a migration irreversible. If you try to reverse an irreversible migration, you will get an
You can read more about Django migrations on the official documentation.