📡 You're offline — showing cached content
New version available!
Quick Access
Tutorials Django Framework Django Migrations

Django Migrations

5 min read Quiz at the end
Generate and apply migrations with makemigrations and migrate; rollback with a revision number.

Migrations

python manage.py makemigrations         # generate migration
python manage.py makemigrations blog    # for specific app
python manage.py migrate                # apply migrations
python manage.py migrate blog 0003      # migrate to specific version
python manage.py showmigrations         # list all migrations
python manage.py sqlmigrate blog 0001   # show SQL for migration

# Custom migration
from django.db import migrations

class Migration(migrations.Migration):
    dependencies = [("blog", "0002_add_slug")]

    operations = [
        migrations.AddField(
            model_name="post",
            name="views",
            field=models.PositiveIntegerField(default=0),
        ),
        migrations.RunPython(
            code=lambda apps, schema: None,
            reverse_code=migrations.RunPython.noop,
        ),
    ]
Topic Quiz · 2 questions

Test your understanding before moving on

1. What does python manage.py makemigrations do?
💡 makemigrations inspects models and generates new migration files.
2. What does python manage.py migrate do?
💡 migrate applies all unapplied migration files to update the database schema.