Django

Django Migrations

Schema changes and data migrations

Django Migrations

  1. Change models.py
  2. python manage.py makemigrations
  3. Review the generated migration file
  4. python manage.py migrate

Data migration (sketch)

from django.db import migrations

def forwards(apps, schema_editor):
    Task = apps.get_model("tasks", "Task")
    Task.objects.filter(priority="").update(priority="med")

class Migration(migrations.Migration):
    dependencies = [("tasks", "0002_auto_...")]
    operations = [migrations.RunPython(forwards, migrations.RunPython.noop)]

Commit migrations to Git. Run migrate in CI/CD before deploying new code.