name: db-migrations description: Work on Madoc TS database migrations and migration tooling. Use when adding SQL migrations, running Slonik migrator, or updating migration paths in services/madoc-ts.
Database Migrations (Madoc TS)
Goal
Explain how migrations are organized and executed so new migration scripts are added safely and run correctly.
Scope
- Migration file layout and naming
- Slonik migrator setup and entrypoints
- Environment variables required for migrations
Non-scope
- Query implementation details
- Repository patterns
- Runtime DB pool configuration outside migration runs
Key Entry Points
services/madoc-ts/migrations/services/madoc-ts/src/migrate.tsservices/madoc-ts/migrate.cjs
Architecture Summary (Based on Source)
- Migrations live in
services/madoc-ts/migrationsand are executed via@slonik/migrator. src/migrate.tsusesROOT_PATH+/migrationsto locate migration files.migrate.cjsis a CommonJS entrypoint with the same migrations path.
Quick Start Workflow
- Review existing migration files in
services/madoc-ts/migrations/for naming and structure. - Confirm
DATABASE_*env vars are set for the migration run. - Use
services/madoc-ts/src/migrate.ts(ormigrate.cjs) to execute migrations.
Common Tasks
- Add a new SQL migration file
- Run migrations in a dev or deployment environment
- Fix migration order or dependencies
Pitfalls
- Incorrect migration filename format
- Running migrations without required environment variables
- Changing migration path without updating both TS and CJS entrypoints
Suggested Checks
- Run migrator on a clean database
- Verify new migration applies and is idempotent where expected
Tooling
scripts/list_migrations.py: list migration files in order.- Usage:
python scripts/list_migrations.py
- Usage: