Summary
Implement a proper database migration system with version tracking, rollback support, and automated migration on server startup.
Motivation
Current migrations are manual SQL files without version tracking. A migration system ensures schema changes are applied consistently across environments.
Acceptance Criteria
Files to Modify
| File |
Action |
backend/src/db/migrations/index.ts |
New: migration runner |
backend/src/db/migrations/runner.ts |
New: migration execution engine |
backend/src/db/migrations/tracker.ts |
New: version tracking |
backend/src/db/migrations/003_create_schema_migrations.sql |
New: migration tracking table |
backend/src/index.ts |
Run migrations on startup |
backend/src/api/routes/health.ts |
Add migration status endpoint |
backend/src/db/migrations/runner.test.ts |
New: migration runner tests |
How to Contribute
- Create branch
feat/database-migrations
- Build migration runner with version tracking
- Add rollback support
- Integrate with server startup
- Write unit tests for migration lifecycle
- Run
npm run test && npm run lint before submitting PR
Summary
Implement a proper database migration system with version tracking, rollback support, and automated migration on server startup.
Motivation
Current migrations are manual SQL files without version tracking. A migration system ensures schema changes are applied consistently across environments.
Acceptance Criteria
schema_migrationstableGET /migrationsFiles to Modify
backend/src/db/migrations/index.tsbackend/src/db/migrations/runner.tsbackend/src/db/migrations/tracker.tsbackend/src/db/migrations/003_create_schema_migrations.sqlbackend/src/index.tsbackend/src/api/routes/health.tsbackend/src/db/migrations/runner.test.tsHow to Contribute
feat/database-migrationsnpm run test && npm run lintbefore submitting PR