# How to revert migrations in Django?

***Note: If you are looking for a Full Stack Developer (Django+React), then connect with me on*** [***LinkedIn***](https://www.linkedin.com/in/mnamegaurav/) ***or contact me through my*** [***portfolio***](https://gaurav.devjunction.in/)***.***

# 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_migration`
        
    * `0002_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:

```bash
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:

```bash
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**.

```bash
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:

```bash
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/](https://www.linkedin.com/in/mnamegaurav/)
    
* **YouTube:** [https://www.youtube.com/c/devjunction](https://www.youtube.com/c/devjunction)
    
* **Website:** [https://gaurav.devjunction.in/](https://gaurav.devjunction.in/)
    
* **GitHub:** [https://github.com/mnamegaurav](https://github.com/mnamegaurav)
    
* **Instagram:** [https://www.instagram.com/mnamegaurav/](https://www.instagram.com/mnamegaurav/)
    
* **Twitter:** [https://twitter.com/mnamegaurav](https://twitter.com/mnamegaurav)
