django-migrations
Installation
SKILL.md
Django Migrations
A migration that's fine on a dev DB with 50 rows can lock a 10M-row production table for minutes. Assume Postgres unless the project says otherwise (if it's MySQL, check each operation against MySQL online DDL instead).
Step 1: Generate, then read the SQL
python manage.py makemigrations <app>
python manage.py sqlmigrate <app> <migration_number>
Always read the sqlmigrate output. The Python looks harmless far more often than the SQL is.
Ask the dev for the rough row count of any table being altered (or check a staging DB). Under ~100k rows most of the rules below are relaxed; say so when they are.