4. Database Migration Pattern
4. Database Migration Pattern
Migration Service:
# docker-compose.yml
services:
migrate:
build:
context: .
dockerfile: Dockerfile
command: npm run migrate
environment:
- DATABASE_URL=postgres://user:pass@db:5432/mydb
depends_on:
db:
condition: service_healthy
profiles:
- migrate # Only run when explicitly requested
seed:
build:
context: .
dockerfile: Dockerfile
command: npm run seed
environment:
- DATABASE_URL=postgres://user:pass@db:5432/mydb
depends_on:
- migrate
profiles:
- seed
Usage:
# Run migrations
docker compose --profile migrate up migrate
# Run migrations and seed
docker compose --profile migrate --profile seed up