- node-pg-migrate + pg: baseline migration (extensions, app_meta) with working down - src/infrastructure/db fail-fast pool and typed query helper - docker-compose: postgres:16-alpine + redis:7-alpine with one-command up - table naming convention <module>_<table> documented in README - integration tests (6) against real PostgreSQL; strict identifier validation for test DDL after security-gate hardening round - deps justified in spec/tech.md; all gates approved; verify.sh green
832 B
832 B
TASKS — F-002 Database foundation with module-owned schemas
- TASK-001 Add deps: pg, node-pg-migrate (+ @types/pg dev); justify in spec/tech.md
- TASK-002 Add
project/docker-compose.yml(postgres:16-alpine + redis:7-alpine, volumes, dev creds) and.env.example - TASK-003 Add baseline migration
migrations/001_baseline.js(node-pg-migrate; extensions + app_meta via pgm.sql, with down) - TASK-004 Add
src/infrastructure/db/pool.ts(createPoolFromEnv fail-fast + query helper) - TASK-005 Wire npm scripts: db:up, db:down, db:status, docker:up, docker:down, test:integration
- TASK-006 Integration tests: fresh up / no-op rerun / down rollback / pool helper roundtrip (skipIf no TEST_DATABASE_URL)
- TASK-007 Document naming convention in project/README.md
- TASK-008 Run full verification and write implementer evidence