Migrations are Django's way of propagating changes you make to your models — adding a field, deleting a model, and so on — into your database schema, and they are designed to be mostly automatic. Four commands cover the workflow: makemigrations creates new migrations based on the changes you have made to your models; migrate applies and unapplies migrations; sqlmigrate displays the SQL statements for a migration; and showmigrations lists a project's migrations and their status. Think of migrations as a version control system for your database schema: makemigrations packages model changes into individual migration files, analogous to commits, and migrate applies them to the database. The migration files for each app live in a migrations directory inside that app and are designed to be committed to, and distributed as part of, its codebase, so schema changes ship with the code that needs them. Scope: Django. Reviewed October 4, 2026.
Migrations as schema version control
Document v1 · published by Koskamo editorial · updated 2026-10-04
Source and provenance
- Original source
- docs.djangoproject.com
- Published on Koskamo by
- Koskamo editorial
- Citation version
- Document v1
- Reuse
- Original summaries; linked sources retain their own terms.