@metaobjectsdev/migrate-ts 0.21.3 → 0.21.4-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../src/apply/apply.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,MAAM,EAAyB,MAAM,QAAQ,CAAC;AAC5D,OAAO,EAKL,KAAK,aAAa,EAClB,KAAK,aAAa,EAGnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAKhE,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAO9B,MAAM,WAAW,mBAAmB;IAClC,8DAA8D;IAC9D,MAAM,EAAE,OAAO,CAAC;IAChB;;;;OAIG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,6FAA6F;IAC7F,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,2EAA2E;IAC3E,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,6EAA6E;IAC7E,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAWD;;;;;;;;;;;;GAYG;AACH,wBAAsB,YAAY,CAChC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACnC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,kBAAkB,CAAC,CAgD7B;AAED,MAAM,WAAW,iBAAiB;IAChC,iGAAiG;IACjG,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,6FAA6F;IAC7F,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,+EAA+E;IAC/E,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,UAAU,CAC9B,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACnC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,IAAI,GAAE,iBAAsB,GAC3B,OAAO,CAAC,gBAAgB,CAAC,CAyC3B"}
1
+ {"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../src/apply/apply.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,MAAM,EAAyB,MAAM,QAAQ,CAAC;AAC5D,OAAO,EAKL,KAAK,aAAa,EAClB,KAAK,aAAa,EAGnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAMhE,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAO9B,MAAM,WAAW,mBAAmB;IAClC,8DAA8D;IAC9D,MAAM,EAAE,OAAO,CAAC;IAChB;;;;OAIG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,6FAA6F;IAC7F,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,2EAA2E;IAC3E,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,6EAA6E;IAC7E,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAWD;;;;;;;;;;;;GAYG;AACH,wBAAsB,YAAY,CAChC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACnC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,kBAAkB,CAAC,CAgD7B;AAED,MAAM,WAAW,iBAAiB;IAChC,iGAAiG;IACjG,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,6FAA6F;IAC7F,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,+EAA+E;IAC/E,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,UAAU,CAC9B,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACnC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,IAAI,GAAE,iBAAsB,GAC3B,OAAO,CAAC,gBAAgB,CAAC,CAyC3B"}
@@ -4,6 +4,7 @@ import { join } from "node:path";
4
4
  import { sql } from "kysely";
5
5
  import { appliedRecords, DEFAULT_LEDGER_SCHEMA, deleteApplied, ensureLedger, MIGRATIONS_TABLE, recordApplied, } from "./ledger.js";
6
6
  import { splitSqlStatements } from "../sql/split-statements.js";
7
+ import { prepareForRunnerTransaction } from "./runner-transaction-pass.js";
7
8
  // Re-exported here for back-compat: `splitSqlStatements` historically lived in
8
9
  // this module. Its canonical home is now ../sql/split-statements.js (shared with
9
10
  // the D1 safety pass), but consumers importing from apply.js keep working.
@@ -197,8 +198,14 @@ function advisoryKey(name) {
197
198
  * (down.sql + deleteApplied) paths.
198
199
  */
199
200
  async function runSqlFileWithLedgerMutation(db, sqlText, mutateLedger) {
201
+ // Adapt the file to the transaction we are about to open. A SQLite rebuild script
202
+ // carries its own BEGIN/COMMIT (correct when piped to `sqlite3`, fatal here — SQLite
203
+ // rejects a nested BEGIN, which made table-rebuild migrations un-appliable on the
204
+ // scaffold's default dialect) and its own `PRAGMA foreign_keys = OFF`, which is a
205
+ // no-op inside a transaction. See runner-transaction-pass.ts for the full rationale.
206
+ const { statements } = prepareForRunnerTransaction(sqlText);
200
207
  await db.transaction().execute(async (trx) => {
201
- for (const stmt of splitSqlStatements(sqlText)) {
208
+ for (const stmt of statements) {
202
209
  await sql.raw(stmt).execute(trx);
203
210
  }
204
211
  await mutateLedger(trx);
@@ -1 +1 @@
1
- {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../src/apply/apply.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../src/apply/apply.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Adapt a migration file's statements for execution INSIDE the apply runner's own
3
+ * transaction.
4
+ *
5
+ * <h3>Why this exists</h3>
6
+ * A SQLite table rebuild (the recreate-and-copy recipe: a column type change, an
7
+ * evolved `field.enum @values`, a CHECK or FK change) is emitted as a **self-contained,
8
+ * standalone-runnable script** — `PRAGMA foreign_keys = OFF; BEGIN TRANSACTION; …
9
+ * COMMIT; PRAGMA foreign_keys = ON;` — which is the correct recipe when you pipe the
10
+ * file into `sqlite3`. But `applyPending` runs the file's statements inside ONE Kysely
11
+ * transaction (so the data change and its ledger row commit or roll back together), and
12
+ * SQLite rejects a nested `BEGIN` outright:
13
+ *
14
+ * SQLITE_ERROR: cannot start a transaction within a transaction
15
+ *
16
+ * The result was that **no table-rebuild migration could be applied at all on sqlite —
17
+ * the scaffold's default dialect** — via `--apply`, `apply-pending`, or under Bun. Worse,
18
+ * the failure landed mid-file: the leading statements had already run, so a dependent
19
+ * view could be dropped and not recreated, leaving the database in a partially-applied
20
+ * state with nothing recorded in the ledger. Found by a fresh-adopter test the first time
21
+ * an enum gained a member.
22
+ *
23
+ * <h3>Why the fix is here and not in the emitter</h3>
24
+ * Deleting `BEGIN`/`COMMIT` from the emitted file would fix the runner and silently make
25
+ * the file non-atomic for anyone executing it directly (`sqlite3 db < up.sql`, a Flyway
26
+ * runner via the ADR-0015 output adapter, a hand-rolled deploy script). The file is a
27
+ * committed artifact with more than one consumer. So the file stays a correct standalone
28
+ * script and the RUNNER adapts it to the transaction it already owns — the same division
29
+ * D1 uses, where `applyD1SafetyPass` strips transaction control because D1 wraps the file
30
+ * in an implicit transaction.
31
+ *
32
+ * <h3>What it does</h3>
33
+ * 1. **Drops transaction control** (`BEGIN`/`COMMIT`/`ROLLBACK`/`SAVEPOINT`/`RELEASE`).
34
+ * The runner's transaction supplies the atomicity the file was asking for.
35
+ * 2. **Rewrites `PRAGMA foreign_keys = OFF` to `PRAGMA defer_foreign_keys = ON`.** This is
36
+ * not cosmetic: `foreign_keys` is a **no-op inside a transaction**, so the rebuild would
37
+ * lose its FK protection precisely where it needs it (dropping a referenced table).
38
+ * `defer_foreign_keys` is the in-transaction equivalent — enforcement is deferred to
39
+ * commit — and is exactly what the D1 cascade emitter uses for the same reason.
40
+ * 3. **Drops the matching `PRAGMA foreign_keys = ON`**, whose only job was to undo (1);
41
+ * `defer_foreign_keys` resets itself at commit.
42
+ *
43
+ * Postgres migrations contain none of these constructs, so this is a no-op for them —
44
+ * which is why it keys on statement text rather than needing the dialect threaded in.
45
+ */
46
+ export interface RunnerTransactionPassResult {
47
+ /** Statements to execute, in order, inside the runner's transaction. */
48
+ statements: string[];
49
+ /** Human-readable adaptations made, for `--verbose`/diagnostics. Empty when untouched. */
50
+ notes: string[];
51
+ }
52
+ export declare function prepareForRunnerTransaction(sqlText: string): RunnerTransactionPassResult;
53
+ //# sourceMappingURL=runner-transaction-pass.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner-transaction-pass.d.ts","sourceRoot":"","sources":["../../src/apply/runner-transaction-pass.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,MAAM,WAAW,2BAA2B;IAC1C,wEAAwE;IACxE,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,0FAA0F;IAC1F,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAMD,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,2BAA2B,CAwBxF"}
@@ -0,0 +1,31 @@
1
+ import { splitSqlStatements } from "../sql/split-statements.js";
2
+ const TRANSACTION_CONTROL = /^\s*(BEGIN|COMMIT|END\s+TRANSACTION|ROLLBACK|SAVEPOINT|RELEASE)\b/i;
3
+ const FK_OFF = /^\s*PRAGMA\s+foreign_keys\s*=\s*(OFF|0|false)\s*$/i;
4
+ const FK_ON = /^\s*PRAGMA\s+foreign_keys\s*=\s*(ON|1|true)\s*$/i;
5
+ export function prepareForRunnerTransaction(sqlText) {
6
+ const notes = [];
7
+ const statements = [];
8
+ for (const stmt of splitSqlStatements(sqlText)) {
9
+ if (TRANSACTION_CONTROL.test(stmt)) {
10
+ notes.push(`dropped transaction control (runner owns the transaction): ${firstWords(stmt)}`);
11
+ continue;
12
+ }
13
+ if (FK_OFF.test(stmt)) {
14
+ // Preserve the INTENT. A bare foreign_keys pragma does nothing inside a
15
+ // transaction, so keeping it verbatim would silently drop FK protection.
16
+ statements.push("PRAGMA defer_foreign_keys = ON");
17
+ notes.push("rewrote `PRAGMA foreign_keys = OFF` to `PRAGMA defer_foreign_keys = ON` (the in-transaction equivalent)");
18
+ continue;
19
+ }
20
+ if (FK_ON.test(stmt)) {
21
+ notes.push("dropped `PRAGMA foreign_keys = ON` (defer_foreign_keys resets at commit)");
22
+ continue;
23
+ }
24
+ statements.push(stmt);
25
+ }
26
+ return { statements, notes };
27
+ }
28
+ function firstWords(stmt) {
29
+ return stmt.trim().split(/\s+/).slice(0, 3).join(" ");
30
+ }
31
+ //# sourceMappingURL=runner-transaction-pass.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner-transaction-pass.js","sourceRoot":"","sources":["../../src/apply/runner-transaction-pass.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAsDhE,MAAM,mBAAmB,GAAG,oEAAoE,CAAC;AACjG,MAAM,MAAM,GAAG,oDAAoD,CAAC;AACpE,MAAM,KAAK,GAAG,kDAAkD,CAAC;AAEjE,MAAM,UAAU,2BAA2B,CAAC,OAAe;IACzD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,KAAK,MAAM,IAAI,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/C,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,8DAA8D,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC7F,SAAS;QACX,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,wEAAwE;YACxE,yEAAyE;YACzE,UAAU,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;YAClD,KAAK,CAAC,IAAI,CAAC,yGAAyG,CAAC,CAAC;YACtH,SAAS;QACX,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC,0EAA0E,CAAC,CAAC;YACvF,SAAS;QACX,CAAC;QACD,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;AAC/B,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxD,CAAC"}
@@ -75,7 +75,18 @@ function renderUp(c) {
75
75
  ? `ALTER TABLE ${quoteQualified(c.table, c.schema)} ALTER COLUMN ${quote(c.column)} SET DEFAULT ${renderDefault(c.to)};`
76
76
  : `ALTER TABLE ${quoteQualified(c.table, c.schema)} ALTER COLUMN ${quote(c.column)} DROP DEFAULT;`;
77
77
  case "add-index": return renderCreateIndex(c.table, c.schema, c.index);
78
- case "drop-index": return `DROP INDEX ${quoteIndexQualified(c.index, c.schema)};`;
78
+ // #285: an index OWNED by a UNIQUE / PRIMARY KEY / EXCLUDE constraint cannot be
79
+ // dropped with DROP INDEX — Postgres refuses with "cannot drop index X because
80
+ // constraint X on table Y requires it", failing the whole (transactional) apply and
81
+ // so blocking every other pending change in the same migration. Drop the constraint
82
+ // instead; it takes its backing index with it. `restore` is the ACTUAL introspected
83
+ // descriptor (both diff producers populate it), which is where the marker lives.
84
+ // Matters broadly, not marginally: Drizzle's `unique()` emits constraints, so every
85
+ // schema adopted from Drizzle has constraint-backed unique indexes.
86
+ case "drop-index":
87
+ return c.restore?.constraint !== undefined
88
+ ? `ALTER TABLE ${quoteQualified(c.table, c.schema)} DROP CONSTRAINT ${quote(c.index)};`
89
+ : `DROP INDEX ${quoteIndexQualified(c.index, c.schema)};`;
79
90
  case "add-fk": return renderAddFk(c.table, c.schema, c.fk);
80
91
  case "drop-fk": return `ALTER TABLE ${quoteQualified(c.table, c.schema)} DROP CONSTRAINT ${quote(c.fk)};`;
81
92
  // add-check / drop-check are declared but NOT yet produced by the diff —
@@ -127,6 +138,18 @@ function renderDown(c) {
127
138
  : `ALTER TABLE ${quoteQualified(c.table, c.schema)} ALTER COLUMN ${quote(c.column)} DROP DEFAULT;`;
128
139
  case "add-index": return `DROP INDEX ${quoteIndexQualified(c.index.name, c.schema)};`;
129
140
  case "drop-index":
141
+ // #285: the up dropped a CONSTRAINT, so the down must add one back — recreating a
142
+ // bare unique index would leave the database in a different shape than it started
143
+ // (uniqueness still enforced, but by an index rather than the constraint), and the
144
+ // next down of THIS same migration would then fail to find the constraint.
145
+ if (c.restore?.constraint === "unique") {
146
+ return `ALTER TABLE ${quoteQualified(c.table, c.schema)} ADD CONSTRAINT ${quote(c.restore.name)} UNIQUE (${c.restore.columns.map(quote).join(", ")});`;
147
+ }
148
+ if (c.restore?.constraint === "exclude") {
149
+ // An EXCLUDE constraint's operator list is not recoverable from an
150
+ // IndexDescriptor; emit an honest warning rather than wrong SQL.
151
+ return `-- WARNING: down migration cannot restore EXCLUDE constraint ${c.restore.name}`;
152
+ }
130
153
  return c.restore
131
154
  ? renderCreateIndex(c.table, c.schema, c.restore)
132
155
  : `-- WARNING: down migration cannot restore the original index definition`;
@@ -1 +1 @@
1
- {"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../src/emit/postgres.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../src/emit/postgres.ts"],"names":[],"mappings":"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"}
@@ -423,7 +423,8 @@ async function readPgIndexes(k, schema, table) {
423
423
  (COALESCE(opt.option, 0) & 1) = 1 AS is_desc,
424
424
  pg_get_expr(ix.indpred, ix.indrelid) AS predicate,
425
425
  am.amname AS access_method,
426
- pg_get_indexdef(ix.indexrelid) AS indexdef
426
+ pg_get_indexdef(ix.indexrelid) AS indexdef,
427
+ con.contype AS constraint_type
427
428
  FROM pg_index ix
428
429
  JOIN pg_class i ON i.oid = ix.indexrelid
429
430
  JOIN pg_class t ON t.oid = ix.indrelid
@@ -433,6 +434,11 @@ async function readPgIndexes(k, schema, table) {
433
434
  LEFT JOIN LATERAL unnest(ix.indoption) WITH ORDINALITY AS opt(option, oord)
434
435
  ON opt.oord = k.ord
435
436
  LEFT JOIN pg_attribute a ON a.attrelid = ix.indrelid AND a.attnum = k.attnum
437
+ -- #285: an index OWNED by a constraint (UNIQUE / PRIMARY KEY / EXCLUDE) cannot be
438
+ -- dropped with DROP INDEX; the constraint must be dropped instead. conindid is the
439
+ -- catalog's own back-pointer, so this is exact rather than a name heuristic.
440
+ LEFT JOIN pg_constraint con
441
+ ON con.conindid = ix.indexrelid AND con.contype IN ('u', 'p', 'x')
436
442
  WHERE n.nspname = ${schema}
437
443
  AND t.relname = ${table}
438
444
  ORDER BY i.relname, k.ord
@@ -455,6 +461,7 @@ async function readPgIndexes(k, schema, table) {
455
461
  hasExpressionKey: false,
456
462
  accessMethod: r.access_method,
457
463
  indexdef: r.indexdef,
464
+ constraintType: r.constraint_type,
458
465
  };
459
466
  byName.set(r.index_name, entry);
460
467
  }
@@ -467,10 +474,14 @@ async function readPgIndexes(k, schema, table) {
467
474
  entry.orders.push(r.is_desc ? "desc" : "asc");
468
475
  }
469
476
  }
477
+ // #285: map pg_constraint.contype onto the descriptor so the emitter knows a
478
+ // DROP INDEX would be refused and must become ALTER TABLE ... DROP CONSTRAINT.
479
+ const constraintKind = (t) => t === "u" ? "unique" : t === "p" ? "primary" : t === "x" ? "exclude" : undefined;
470
480
  return Array.from(byName.entries())
471
481
  .filter(([, v]) => !v.isPrimary) // PK index excluded — PK lives in TableDescriptor.primaryKey
472
482
  .map(([name, v]) => {
473
483
  const using = v.accessMethod !== "btree" ? v.accessMethod : undefined;
484
+ const constraint = constraintKind(v.constraintType);
474
485
  if (v.hasExpressionKey) {
475
486
  // Functional/expression index: lift the raw key expression out of the
476
487
  // index def (between `USING <am> (` and its matching `)`, before WHERE).
@@ -479,6 +490,8 @@ async function readPgIndexes(k, schema, table) {
479
490
  ix.using = using;
480
491
  if (v.predicate !== null)
481
492
  ix.where = v.predicate;
493
+ if (constraint)
494
+ ix.constraint = constraint;
482
495
  return ix;
483
496
  }
484
497
  const ix = { name, columns: v.cols, unique: v.isUnique };
@@ -488,6 +501,8 @@ async function readPgIndexes(k, schema, table) {
488
501
  ix.orders = v.orders;
489
502
  if (v.predicate !== null)
490
503
  ix.where = v.predicate;
504
+ if (constraint)
505
+ ix.constraint = constraint;
491
506
  return ix;
492
507
  });
493
508
  }
@@ -1 +1 @@
1
- {"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../src/introspect/postgres.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../src/introspect/postgres.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -80,6 +80,23 @@ export interface IndexDescriptor {
80
80
  * default and not rendered. Emitted as `USING <method>` before the key list.
81
81
  */
82
82
  using?: string;
83
+ /**
84
+ * INTROSPECTION-ONLY, Postgres. Set when the LIVE index is owned by a table
85
+ * constraint (`pg_constraint.conindid`), i.e. it was created as a side effect of
86
+ * `UNIQUE` / `PRIMARY KEY` / `EXCLUDE` rather than by `CREATE INDEX`. Postgres
87
+ * refuses `DROP INDEX` on such an index ("cannot drop index X because constraint
88
+ * X on table Y requires it"), so the emitter must drop the CONSTRAINT instead.
89
+ *
90
+ * Never authored in metadata and never present on the expected side — it describes
91
+ * how the database happens to hold an index, not what the model asks for. It is
92
+ * therefore deliberately NOT compared by `indexEquals`: a unique index and a unique
93
+ * constraint over the same columns are the same model-level thing.
94
+ *
95
+ * This matters far beyond an edge case: Drizzle's `unique()` produces constraints,
96
+ * so every adopter migrating from a Drizzle-managed schema has constraint-backed
97
+ * unique indexes (#285).
98
+ */
99
+ constraint?: "unique" | "primary" | "exclude";
83
100
  }
84
101
  export interface CheckDescriptor {
85
102
  /** Constraint name, e.g. `<table>_<column>_chk`. Diff/identity key. */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metaobjectsdev/migrate-ts",
3
- "version": "0.21.3",
3
+ "version": "0.21.4-rc.1",
4
4
  "description": "Schema migration tooling for MetaObjects: diff metadata vs DB and emit SQL for Postgres and SQLite.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -45,7 +45,7 @@
45
45
  },
46
46
  "dependencies": {
47
47
  "@iarna/toml": "^2.2.5",
48
- "@metaobjectsdev/metadata": "0.21.3"
48
+ "@metaobjectsdev/metadata": "0.21.4-rc.1"
49
49
  },
50
50
  "peerDependencies": {
51
51
  "kysely": ">=0.27.0"
@@ -13,6 +13,7 @@ import {
13
13
  recordApplied,
14
14
  } from "./ledger.js";
15
15
  import { splitSqlStatements } from "../sql/split-statements.js";
16
+ import { prepareForRunnerTransaction } from "./runner-transaction-pass.js";
16
17
 
17
18
  // Re-exported here for back-compat: `splitSqlStatements` historically lived in
18
19
  // this module. Its canonical home is now ../sql/split-statements.js (shared with
@@ -298,8 +299,14 @@ async function runSqlFileWithLedgerMutation(
298
299
  sqlText: string,
299
300
  mutateLedger: (trx: Transaction<Record<string, unknown>>) => Promise<void>,
300
301
  ): Promise<void> {
302
+ // Adapt the file to the transaction we are about to open. A SQLite rebuild script
303
+ // carries its own BEGIN/COMMIT (correct when piped to `sqlite3`, fatal here — SQLite
304
+ // rejects a nested BEGIN, which made table-rebuild migrations un-appliable on the
305
+ // scaffold's default dialect) and its own `PRAGMA foreign_keys = OFF`, which is a
306
+ // no-op inside a transaction. See runner-transaction-pass.ts for the full rationale.
307
+ const { statements } = prepareForRunnerTransaction(sqlText);
301
308
  await db.transaction().execute(async (trx) => {
302
- for (const stmt of splitSqlStatements(sqlText)) {
309
+ for (const stmt of statements) {
303
310
  await sql.raw(stmt).execute(trx);
304
311
  }
305
312
  await mutateLedger(trx);
@@ -0,0 +1,87 @@
1
+ import { splitSqlStatements } from "../sql/split-statements.js";
2
+
3
+ /**
4
+ * Adapt a migration file's statements for execution INSIDE the apply runner's own
5
+ * transaction.
6
+ *
7
+ * <h3>Why this exists</h3>
8
+ * A SQLite table rebuild (the recreate-and-copy recipe: a column type change, an
9
+ * evolved `field.enum @values`, a CHECK or FK change) is emitted as a **self-contained,
10
+ * standalone-runnable script** — `PRAGMA foreign_keys = OFF; BEGIN TRANSACTION; …
11
+ * COMMIT; PRAGMA foreign_keys = ON;` — which is the correct recipe when you pipe the
12
+ * file into `sqlite3`. But `applyPending` runs the file's statements inside ONE Kysely
13
+ * transaction (so the data change and its ledger row commit or roll back together), and
14
+ * SQLite rejects a nested `BEGIN` outright:
15
+ *
16
+ * SQLITE_ERROR: cannot start a transaction within a transaction
17
+ *
18
+ * The result was that **no table-rebuild migration could be applied at all on sqlite —
19
+ * the scaffold's default dialect** — via `--apply`, `apply-pending`, or under Bun. Worse,
20
+ * the failure landed mid-file: the leading statements had already run, so a dependent
21
+ * view could be dropped and not recreated, leaving the database in a partially-applied
22
+ * state with nothing recorded in the ledger. Found by a fresh-adopter test the first time
23
+ * an enum gained a member.
24
+ *
25
+ * <h3>Why the fix is here and not in the emitter</h3>
26
+ * Deleting `BEGIN`/`COMMIT` from the emitted file would fix the runner and silently make
27
+ * the file non-atomic for anyone executing it directly (`sqlite3 db < up.sql`, a Flyway
28
+ * runner via the ADR-0015 output adapter, a hand-rolled deploy script). The file is a
29
+ * committed artifact with more than one consumer. So the file stays a correct standalone
30
+ * script and the RUNNER adapts it to the transaction it already owns — the same division
31
+ * D1 uses, where `applyD1SafetyPass` strips transaction control because D1 wraps the file
32
+ * in an implicit transaction.
33
+ *
34
+ * <h3>What it does</h3>
35
+ * 1. **Drops transaction control** (`BEGIN`/`COMMIT`/`ROLLBACK`/`SAVEPOINT`/`RELEASE`).
36
+ * The runner's transaction supplies the atomicity the file was asking for.
37
+ * 2. **Rewrites `PRAGMA foreign_keys = OFF` to `PRAGMA defer_foreign_keys = ON`.** This is
38
+ * not cosmetic: `foreign_keys` is a **no-op inside a transaction**, so the rebuild would
39
+ * lose its FK protection precisely where it needs it (dropping a referenced table).
40
+ * `defer_foreign_keys` is the in-transaction equivalent — enforcement is deferred to
41
+ * commit — and is exactly what the D1 cascade emitter uses for the same reason.
42
+ * 3. **Drops the matching `PRAGMA foreign_keys = ON`**, whose only job was to undo (1);
43
+ * `defer_foreign_keys` resets itself at commit.
44
+ *
45
+ * Postgres migrations contain none of these constructs, so this is a no-op for them —
46
+ * which is why it keys on statement text rather than needing the dialect threaded in.
47
+ */
48
+ export interface RunnerTransactionPassResult {
49
+ /** Statements to execute, in order, inside the runner's transaction. */
50
+ statements: string[];
51
+ /** Human-readable adaptations made, for `--verbose`/diagnostics. Empty when untouched. */
52
+ notes: string[];
53
+ }
54
+
55
+ const TRANSACTION_CONTROL = /^\s*(BEGIN|COMMIT|END\s+TRANSACTION|ROLLBACK|SAVEPOINT|RELEASE)\b/i;
56
+ const FK_OFF = /^\s*PRAGMA\s+foreign_keys\s*=\s*(OFF|0|false)\s*$/i;
57
+ const FK_ON = /^\s*PRAGMA\s+foreign_keys\s*=\s*(ON|1|true)\s*$/i;
58
+
59
+ export function prepareForRunnerTransaction(sqlText: string): RunnerTransactionPassResult {
60
+ const notes: string[] = [];
61
+ const statements: string[] = [];
62
+
63
+ for (const stmt of splitSqlStatements(sqlText)) {
64
+ if (TRANSACTION_CONTROL.test(stmt)) {
65
+ notes.push(`dropped transaction control (runner owns the transaction): ${firstWords(stmt)}`);
66
+ continue;
67
+ }
68
+ if (FK_OFF.test(stmt)) {
69
+ // Preserve the INTENT. A bare foreign_keys pragma does nothing inside a
70
+ // transaction, so keeping it verbatim would silently drop FK protection.
71
+ statements.push("PRAGMA defer_foreign_keys = ON");
72
+ notes.push("rewrote `PRAGMA foreign_keys = OFF` to `PRAGMA defer_foreign_keys = ON` (the in-transaction equivalent)");
73
+ continue;
74
+ }
75
+ if (FK_ON.test(stmt)) {
76
+ notes.push("dropped `PRAGMA foreign_keys = ON` (defer_foreign_keys resets at commit)");
77
+ continue;
78
+ }
79
+ statements.push(stmt);
80
+ }
81
+
82
+ return { statements, notes };
83
+ }
84
+
85
+ function firstWords(stmt: string): string {
86
+ return stmt.trim().split(/\s+/).slice(0, 3).join(" ");
87
+ }
@@ -82,7 +82,18 @@ function renderUp(c: Change): string {
82
82
  ? `ALTER TABLE ${quoteQualified(c.table, c.schema)} ALTER COLUMN ${quote(c.column)} SET DEFAULT ${renderDefault(c.to)};`
83
83
  : `ALTER TABLE ${quoteQualified(c.table, c.schema)} ALTER COLUMN ${quote(c.column)} DROP DEFAULT;`;
84
84
  case "add-index": return renderCreateIndex(c.table, c.schema, c.index);
85
- case "drop-index": return `DROP INDEX ${quoteIndexQualified(c.index, c.schema)};`;
85
+ // #285: an index OWNED by a UNIQUE / PRIMARY KEY / EXCLUDE constraint cannot be
86
+ // dropped with DROP INDEX — Postgres refuses with "cannot drop index X because
87
+ // constraint X on table Y requires it", failing the whole (transactional) apply and
88
+ // so blocking every other pending change in the same migration. Drop the constraint
89
+ // instead; it takes its backing index with it. `restore` is the ACTUAL introspected
90
+ // descriptor (both diff producers populate it), which is where the marker lives.
91
+ // Matters broadly, not marginally: Drizzle's `unique()` emits constraints, so every
92
+ // schema adopted from Drizzle has constraint-backed unique indexes.
93
+ case "drop-index":
94
+ return c.restore?.constraint !== undefined
95
+ ? `ALTER TABLE ${quoteQualified(c.table, c.schema)} DROP CONSTRAINT ${quote(c.index)};`
96
+ : `DROP INDEX ${quoteIndexQualified(c.index, c.schema)};`;
86
97
  case "add-fk": return renderAddFk(c.table, c.schema, c.fk);
87
98
  case "drop-fk": return `ALTER TABLE ${quoteQualified(c.table, c.schema)} DROP CONSTRAINT ${quote(c.fk)};`;
88
99
  // add-check / drop-check are declared but NOT yet produced by the diff —
@@ -135,6 +146,18 @@ function renderDown(c: Change): string {
135
146
  : `ALTER TABLE ${quoteQualified(c.table, c.schema)} ALTER COLUMN ${quote(c.column)} DROP DEFAULT;`;
136
147
  case "add-index": return `DROP INDEX ${quoteIndexQualified(c.index.name, c.schema)};`;
137
148
  case "drop-index":
149
+ // #285: the up dropped a CONSTRAINT, so the down must add one back — recreating a
150
+ // bare unique index would leave the database in a different shape than it started
151
+ // (uniqueness still enforced, but by an index rather than the constraint), and the
152
+ // next down of THIS same migration would then fail to find the constraint.
153
+ if (c.restore?.constraint === "unique") {
154
+ return `ALTER TABLE ${quoteQualified(c.table, c.schema)} ADD CONSTRAINT ${quote(c.restore.name)} UNIQUE (${c.restore.columns.map(quote).join(", ")});`;
155
+ }
156
+ if (c.restore?.constraint === "exclude") {
157
+ // An EXCLUDE constraint's operator list is not recoverable from an
158
+ // IndexDescriptor; emit an honest warning rather than wrong SQL.
159
+ return `-- WARNING: down migration cannot restore EXCLUDE constraint ${c.restore.name}`;
160
+ }
138
161
  return c.restore
139
162
  ? renderCreateIndex(c.table, c.schema, c.restore)
140
163
  : `-- WARNING: down migration cannot restore the original index definition`;
@@ -515,6 +515,7 @@ async function readPgIndexes(k: RawKysely, schema: string, table: string): Promi
515
515
  predicate: string | null;
516
516
  access_method: string;
517
517
  indexdef: string;
518
+ constraint_type: string | null;
518
519
  }>;
519
520
  };
520
521
  try {
@@ -528,6 +529,7 @@ async function readPgIndexes(k: RawKysely, schema: string, table: string): Promi
528
529
  predicate: string | null;
529
530
  access_method: string;
530
531
  indexdef: string;
532
+ constraint_type: string | null;
531
533
  }>`
532
534
  SELECT i.relname AS index_name,
533
535
  ix.indisunique AS is_unique,
@@ -537,7 +539,8 @@ async function readPgIndexes(k: RawKysely, schema: string, table: string): Promi
537
539
  (COALESCE(opt.option, 0) & 1) = 1 AS is_desc,
538
540
  pg_get_expr(ix.indpred, ix.indrelid) AS predicate,
539
541
  am.amname AS access_method,
540
- pg_get_indexdef(ix.indexrelid) AS indexdef
542
+ pg_get_indexdef(ix.indexrelid) AS indexdef,
543
+ con.contype AS constraint_type
541
544
  FROM pg_index ix
542
545
  JOIN pg_class i ON i.oid = ix.indexrelid
543
546
  JOIN pg_class t ON t.oid = ix.indrelid
@@ -547,6 +550,11 @@ async function readPgIndexes(k: RawKysely, schema: string, table: string): Promi
547
550
  LEFT JOIN LATERAL unnest(ix.indoption) WITH ORDINALITY AS opt(option, oord)
548
551
  ON opt.oord = k.ord
549
552
  LEFT JOIN pg_attribute a ON a.attrelid = ix.indrelid AND a.attnum = k.attnum
553
+ -- #285: an index OWNED by a constraint (UNIQUE / PRIMARY KEY / EXCLUDE) cannot be
554
+ -- dropped with DROP INDEX; the constraint must be dropped instead. conindid is the
555
+ -- catalog's own back-pointer, so this is exact rather than a name heuristic.
556
+ LEFT JOIN pg_constraint con
557
+ ON con.conindid = ix.indexrelid AND con.contype IN ('u', 'p', 'x')
550
558
  WHERE n.nspname = ${schema}
551
559
  AND t.relname = ${table}
552
560
  ORDER BY i.relname, k.ord
@@ -567,6 +575,7 @@ async function readPgIndexes(k: RawKysely, schema: string, table: string): Promi
567
575
  hasExpressionKey: boolean;
568
576
  accessMethod: string;
569
577
  indexdef: string;
578
+ constraintType: string | null;
570
579
  }
571
580
  >();
572
581
  for (const r of rows.rows) {
@@ -581,6 +590,7 @@ async function readPgIndexes(k: RawKysely, schema: string, table: string): Promi
581
590
  hasExpressionKey: false,
582
591
  accessMethod: r.access_method,
583
592
  indexdef: r.indexdef,
593
+ constraintType: r.constraint_type,
584
594
  };
585
595
  byName.set(r.index_name, entry);
586
596
  }
@@ -592,22 +602,30 @@ async function readPgIndexes(k: RawKysely, schema: string, table: string): Promi
592
602
  entry.orders.push(r.is_desc ? "desc" : "asc");
593
603
  }
594
604
  }
605
+ // #285: map pg_constraint.contype onto the descriptor so the emitter knows a
606
+ // DROP INDEX would be refused and must become ALTER TABLE ... DROP CONSTRAINT.
607
+ const constraintKind = (t: string | null): IndexDescriptor["constraint"] =>
608
+ t === "u" ? "unique" : t === "p" ? "primary" : t === "x" ? "exclude" : undefined;
609
+
595
610
  return Array.from(byName.entries())
596
611
  .filter(([, v]) => !v.isPrimary) // PK index excluded — PK lives in TableDescriptor.primaryKey
597
612
  .map(([name, v]) => {
598
613
  const using = v.accessMethod !== "btree" ? v.accessMethod : undefined;
614
+ const constraint = constraintKind(v.constraintType);
599
615
  if (v.hasExpressionKey) {
600
616
  // Functional/expression index: lift the raw key expression out of the
601
617
  // index def (between `USING <am> (` and its matching `)`, before WHERE).
602
618
  const ix: IndexDescriptor = { name, columns: [], unique: v.isUnique, expr: indexDefKeyExpr(v.indexdef) };
603
619
  if (using) ix.using = using;
604
620
  if (v.predicate !== null) ix.where = v.predicate;
621
+ if (constraint) ix.constraint = constraint;
605
622
  return ix;
606
623
  }
607
624
  const ix: IndexDescriptor = { name, columns: v.cols, unique: v.isUnique };
608
625
  if (using) ix.using = using;
609
626
  if (v.orders.some((o) => o === "desc")) ix.orders = v.orders;
610
627
  if (v.predicate !== null) ix.where = v.predicate;
628
+ if (constraint) ix.constraint = constraint;
611
629
  return ix;
612
630
  });
613
631
  }
package/src/types.ts CHANGED
@@ -91,6 +91,23 @@ export interface IndexDescriptor {
91
91
  * default and not rendered. Emitted as `USING <method>` before the key list.
92
92
  */
93
93
  using?: string;
94
+ /**
95
+ * INTROSPECTION-ONLY, Postgres. Set when the LIVE index is owned by a table
96
+ * constraint (`pg_constraint.conindid`), i.e. it was created as a side effect of
97
+ * `UNIQUE` / `PRIMARY KEY` / `EXCLUDE` rather than by `CREATE INDEX`. Postgres
98
+ * refuses `DROP INDEX` on such an index ("cannot drop index X because constraint
99
+ * X on table Y requires it"), so the emitter must drop the CONSTRAINT instead.
100
+ *
101
+ * Never authored in metadata and never present on the expected side — it describes
102
+ * how the database happens to hold an index, not what the model asks for. It is
103
+ * therefore deliberately NOT compared by `indexEquals`: a unique index and a unique
104
+ * constraint over the same columns are the same model-level thing.
105
+ *
106
+ * This matters far beyond an edge case: Drizzle's `unique()` produces constraints,
107
+ * so every adopter migrating from a Drizzle-managed schema has constraint-backed
108
+ * unique indexes (#285).
109
+ */
110
+ constraint?: "unique" | "primary" | "exclude";
94
111
  }
95
112
 
96
113
  export interface CheckDescriptor {