Sangeetha-Grantha

Metadata Value
Status Completed
Version 2.0.0
Last Updated 2026-06-14
Author Sangeetha Grantha Team
Priority P0 — foundation for the whole initiative
Epic TRACK-109 (W2 CI/CD)
Decisions D2, D7, D10, D11, D14, D15, D16 (decision log)
Depends on TRACK-114 (admin bootstrap hash)
Blocks TRACK-111, TRACK-112, TRACK-113, TRACK-117

TRACK-110: Testcontainers Substrate + Flyway Cutover (Steps 1–2)

Goal

Make integration tests self-provisioning via Testcontainers, and consolidate the two diverged migration runners (Python db-migrate + Kotlin MigrationRunner) onto Flyway per ADR-013. Estimated ~3–4 days.

Two sub-parts: Sub-part A (Flyway cutover) is on the import critical path — the D2 freeze cannot lift until it lands. Sub-part B (test substrate) is not and runs after the import resumes.

Context

See Integration Tests Approach §1–§5. The current harness hard-codes localhost:5432, pins no Postgres version, shares one mutable DB, and runs two incompatible migration implementations (schema_migrations vs _sqlx_migrations). Testcontainers + Flyway fixes all of this and makes CI (TRACK-111) a one-day task.

Implementation Plan

Sub-part A — Flyway cutover (critical path, during the D2 freeze)

Sub-part B — Testcontainers test substrate (not on import critical path)

Acceptance Criteria

Docs to Update

References