How to revert migrations in Django?
A guide on reverting migrations in Django

Experienced Full Stack Software Engineer with 4+ Years of experience, proficient in Django and React, with expertise in Python, JavaScript and Typescript, also an author of Dev.Junction Blogs & YouTube Channel, expert in Python/Django, Rest Framework, ReactJS/NextJS and TypeScript, currently based in Pune, India.
Note: If you are looking for a Full Stack Developer (Django+React), then connect with me on LinkedIn or contact me through my portfolio.
Introduction:
Sometimes we run a migration that make changes in our database, but we want to revert it and delete the migration, without creating a new migration.
Well, in that case, there is a small trick that you can use to revert your migration safely.
Assumption for this Blog:
Before we get into the actual steps, let’s assume a few things to understand the example better:
Our Project name is
myproject.The App name is
myapp.Our latest two latest migrations are:
0003_latest_migration0002_previous_migration
Migration to revert is
0003_latest_migration
Steps to revert the migrations by its number:
In Django, Migrations can be reversed with migrate command by passing the number of the previous migration.
To revert a migration 003, we have to run this command:
python manage.py migrate myapp 0002
The above command will remove the applied changes of 0003_latest_migration and revert it back to 0002_previous_migration. Output will be something like this:
Operations to perform:
Target specific migration: 0002_previous_migration, from myapp
Running migrations:
Rendering model states... DONE
Unapplying myapp.0003_latest_migration... OK
Steps to revert all the migrations:
In Django, If you want to reverse all migrations applied for an app, use the name zero with the migrate command.
python manage.py migrate myapp zero
The above command will remove the all the applied changes of the Django app myapp, Output will be something like this:
Operations to perform:
Unapply all migrations: myapp
Running migrations:
Rendering model states... DONE
Unapplying myapp.0002_previous_migration... OK
Unapplying myapp.0001_initial... OK
For more such crispy blogs daily, follow Dev.Junction, subscribe to our newsletter and get notified.
Social Links
LinkedIn: https://www.linkedin.com/in/mnamegaurav/
Website: https://gaurav.devjunction.in/
GitHub: https://github.com/mnamegaurav
Instagram: https://www.instagram.com/mnamegaurav/
Twitter: https://twitter.com/mnamegaurav






