← ClaudeAtlas

db-migrationlisted

Use when setting up Alembic migrations or making database schema changes. Triggers for: initializing Alembic, generating migrations, applying upgrades, rolling back changes, or creating data migrations. NOT for: raw SQL execution outside migration context or non-database schema updates.
aiskillstore/marketplace · ★ 329 · API & Backend · score 79
Install: claude install-skill aiskillstore/marketplace
# Database Migration Skill Expert Alembic migration management for SQLModel/FastAPI projects with safe schema evolution and rollback capabilities. ## Quick Reference | Command | Purpose | |---------|---------| | `alembic init alembic` | Initialize Alembic in project | | `alembic revision --autogenerate -m "message"` | Generate migration from model changes | | `alembic revision -m "message"` | Create empty migration manually | | `alembic upgrade head` | Apply all pending migrations | | `alembic upgrade +1` | Apply one migration at a time | | `alembic downgrade -1` | Rollback last migration | | `alembic downgrade base` | Rollback all migrations | | `alembic current` | Show current revision | | `alembic history` | Show migration history | ## Initial Setup ### 1. Initialize Alembic ```bash alembic init alembic ``` ### 2. Configure alembic.ini ```ini # alembic.ini sqlalchemy.url = driver://user:pass@localhost/dbname file_template = %%(year)s_%%(month).2d_%%(day).2d_%%(hour).2d%%(minute).2d_%%(rev)s_%%(slug)s timezone = UTC ``` ### 3. Configure env.py for SQLModel ```python # alembic/env.py from logging.config import fileConfig from sqlalchemy import pool from sqlalchemy.engine import Connection from alembic.runtime.migration import MigrationContext from sqlmodel import SQLModel, create_engine from myapp.models import * # Import all SQLModel classes config = context.config config.set_main_option("sqlalchemy.url", "postgresql://user:pass@localhost/dbname") target_metada