← ClaudeAtlas

py-alembic-patternslisted

Alembic migration patterns for PostgreSQL. Use when creating migrations, reviewing autogenerated migrations, or handling schema changes safely.
aiskillstore/marketplace · ★ 329 · API & Backend · score 79
Install: claude install-skill aiskillstore/marketplace
# Alembic Migration Patterns ## Problem Statement Alembic autogenerate is convenient but misses things and sometimes generates dangerous migrations. Schema changes are high-risk - bad migrations cause data loss or downtime. Every migration needs human review. --- ## Pattern: Migration Commands ```bash # Generate migration from model changes uv run alembic revision --autogenerate -m "Add user preferences table" # Apply migrations uv run alembic upgrade head # Rollback one migration uv run alembic downgrade -1 # Rollback to specific revision uv run alembic downgrade abc123 # Show current revision uv run alembic current # Show migration history uv run alembic history # Show pending migrations uv run alembic history --indicate-current ``` --- ## Pattern: Reviewing Autogenerated Migrations **ALWAYS review autogenerated migrations. They often need fixes.** ### What Autogenerate Catches - Table creation/deletion - Column addition/removal - Column type changes - Foreign key changes - Index changes (sometimes) ### What Autogenerate Misses - Column renames (sees as drop + add = DATA LOSS) - Table renames (same problem) - Data migrations - Constraint names - Partial indexes - Complex index changes - Check constraints - Triggers and functions ```python # ❌ DANGEROUS: Autogenerated for column rename def upgrade(): op.drop_column("users", "name") # DATA LOSS! op.add_column("users", sa.Column("full_name", sa.String())) # ✅ CORRECT: Manual rename def upgrade():