alembic-migration
Installation
SKILL.md
Alembic Migrations
This project uses async SQLAlchemy 2.0 + Alembic on PostgreSQL. Migrations live in backend/alembic/versions/ and are numbered (0001_…, 0002_…).
Workflow
-
Change the model first in
backend/app/db/models/(Mapped[...]+mapped_column(),__repr__, relationships withondelete="CASCADE"). Make sure the model is imported inbackend/app/db/models/__init__.pyso autogenerate sees it. -
Autogenerate the migration:
cd backend && uv run alembic revision --autogenerate -m "add <thing>" # or: make db-migrate -
ALWAYS review the generated file. Autogenerate is a draft, not the truth:
- Confirm
upgrade()matches your intent anddowngrade()actually reverses it. - Check the
down_revisionchains onto the current head (uv run alembic heads). - Watch for dropped columns/tables you didn't intend, server defaults, enum changes, and JSON/array types.
- Name the revision file with the next sequential prefix to match the existing convention.
- Confirm