[E00-S03-T05] Migration failure produces structured diagnostic #394

Merged
kpcto merged 3 commits from feature/180 into main 2026-08-30 01:31:49 +00:00
Showing only changes of commit bb3a68648a - Show all commits
+8 -5
View File
@@ -33,7 +33,7 @@
*/ */
import type { Pool } from 'pg'; import type { Pool } from 'pg';
import { MigrationLedger } from './ledger.js'; import type { MigrationLedger } from './ledger.js';
/** /**
* A single migration step: an identifier (recorded in the ledger once the * A single migration step: an identifier (recorded in the ledger once the
@@ -136,14 +136,17 @@ export class MigrationRunner {
private readonly migrations: readonly Migration[]; private readonly migrations: readonly Migration[];
/** /**
* @param pool The package-owned PostgreSQL pool (`pg.Pool`). * @param pool The package-owned PostgreSQL pool (`pg.Pool`), handed to each
* migration's `up`.
* @param migrations The migrations to run, in apply order (oldest first). * @param migrations The migrations to run, in apply order (oldest first).
* @param ledger The migration ledger; defaults to one sharing `pool`. * @param ledger The migration ledger (E00-S03-T03) the runner reads applied
* versions from and records applied migrations into; constructed by the
* caller from the same pool (`new MigrationLedger(pool)`).
*/ */
constructor(pool: Pool, migrations: readonly Migration[], ledger?: MigrationLedger) { constructor(pool: Pool, migrations: readonly Migration[], ledger: MigrationLedger) {
this.pool = pool; this.pool = pool;
this.migrations = migrations; this.migrations = migrations;
this.ledger = ledger ?? new MigrationLedger(pool); this.ledger = ledger;
} }
/** /**