@metaobjectsdev/migrate-ts 0.20.7 → 0.20.8-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.
- package/dist/emit/d1-cascade.d.ts +38 -0
- package/dist/emit/d1-cascade.d.ts.map +1 -0
- package/dist/emit/d1-cascade.js +98 -0
- package/dist/emit/d1-cascade.js.map +1 -0
- package/dist/emit/d1-fk-refuse.d.ts +10 -0
- package/dist/emit/d1-fk-refuse.d.ts.map +1 -1
- package/dist/emit/d1-fk-refuse.js +25 -0
- package/dist/emit/d1-fk-refuse.js.map +1 -1
- package/dist/emit/d1.d.ts +3 -1
- package/dist/emit/d1.d.ts.map +1 -1
- package/dist/emit/d1.js +54 -15
- package/dist/emit/d1.js.map +1 -1
- package/dist/emit/fk-graph.d.ts +28 -0
- package/dist/emit/fk-graph.d.ts.map +1 -0
- package/dist/emit/fk-graph.js +117 -0
- package/dist/emit/fk-graph.js.map +1 -0
- package/dist/emit/index.d.ts +2 -0
- package/dist/emit/index.d.ts.map +1 -1
- package/dist/emit/index.js +1 -1
- package/dist/emit/index.js.map +1 -1
- package/dist/emit/sqlite.d.ts +13 -1
- package/dist/emit/sqlite.d.ts.map +1 -1
- package/dist/emit/sqlite.js +15 -16
- package/dist/emit/sqlite.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/emit/d1-cascade.ts +134 -0
- package/src/emit/d1-fk-refuse.ts +27 -0
- package/src/emit/d1.ts +66 -15
- package/src/emit/fk-graph.ts +125 -0
- package/src/emit/index.ts +3 -1
- package/src/emit/sqlite.ts +21 -24
- package/src/index.ts +1 -1
package/dist/emit/sqlite.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../src/emit/sqlite.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../src/emit/sqlite.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -24,7 +24,7 @@ export type { WriteMigrationD1Options, WriteMigrationD1Result } from "./write-mi
|
|
|
24
24
|
export { normalizeViewSql, viewSqlEquals } from "./view-sql-compare.js";
|
|
25
25
|
export { renderD1 } from "./emit/d1.js";
|
|
26
26
|
export { applyD1SafetyPass, D1UnsupportedStatementError } from "./emit/d1-safety-pass.js";
|
|
27
|
-
export { findReferencedRebuilds, D1ReferencedTableRebuildError } from "./emit/d1-fk-refuse.js";
|
|
27
|
+
export { findReferencedRebuilds, D1ReferencedTableRebuildError, D1CyclicForeignKeyError } from "./emit/d1-fk-refuse.js";
|
|
28
28
|
export type { D1RebuildRefusal } from "./emit/d1-fk-refuse.js";
|
|
29
29
|
export { introspectD1, type D1Runner, type IntrospectD1Options } from "./introspect/d1.js";
|
|
30
30
|
export { ensureLedger, recordApplied, deleteApplied, appliedNames, appliedRecords, recordBaseline, baselineRecord, BASELINE_NAME, MIGRATIONS_TABLE, DEFAULT_LEDGER_SCHEMA, type LedgerRow, type LedgerOptions, type LedgerDialect, } from "./apply/ledger.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzF,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAClG,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC1E,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAG3D,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACvE,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAG7E,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAG3E,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAG1D,YAAY,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,YAAY,EACV,cAAc,EAAE,YAAY,EAC5B,eAAe,EAAE,gBAAgB,EAAE,eAAe,EAAE,YAAY,EAAE,aAAa,EAC/E,cAAc,EAAE,QAAQ,EACxB,MAAM,EAAE,UAAU,EAAE,YAAY,EAChC,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,iBAAiB,EACrE,UAAU,EAAE,UAAU,EAAE,OAAO,GAChC,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,YAAY,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACxF,YAAY,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAM/F,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAMxE,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAC1F,OAAO,EAAE,sBAAsB,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -36,7 +36,7 @@ export { normalizeViewSql, viewSqlEquals } from "./view-sql-compare.js";
|
|
|
36
36
|
// independently without going through emit().
|
|
37
37
|
export { renderD1 } from "./emit/d1.js";
|
|
38
38
|
export { applyD1SafetyPass, D1UnsupportedStatementError } from "./emit/d1-safety-pass.js";
|
|
39
|
-
export { findReferencedRebuilds, D1ReferencedTableRebuildError } from "./emit/d1-fk-refuse.js";
|
|
39
|
+
export { findReferencedRebuilds, D1ReferencedTableRebuildError, D1CyclicForeignKeyError } from "./emit/d1-fk-refuse.js";
|
|
40
40
|
// D1 introspection
|
|
41
41
|
export { introspectD1 } from "./introspect/d1.js";
|
|
42
42
|
// Migration-history ledger + ordered transactional apply (postgres/sqlite)
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,EAAE;AACF,gEAAgE;AAChE,yEAAyE;AACzE,sEAAsE;AACtE,2BAA2B;AAC3B,EAAE;AACF,2DAA2D;AAE3D,qBAAqB;AACrB,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzF,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAA4B,MAAM,kBAAkB,CAAC;AAClG,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE1E,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,0DAA0D;AAC1D,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAGvE,SAAS;AACT,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAE3E,oEAAoE;AACpE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAiB1D,+EAA+E;AAC/E,gFAAgF;AAChF,mFAAmF;AACnF,4EAA4E;AAC5E,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAExE,oCAAoC;AACpC,wEAAwE;AACxE,yEAAyE;AACzE,8CAA8C;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAC1F,OAAO,EAAE,sBAAsB,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,EAAE;AACF,gEAAgE;AAChE,yEAAyE;AACzE,sEAAsE;AACtE,2BAA2B;AAC3B,EAAE;AACF,2DAA2D;AAE3D,qBAAqB;AACrB,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzF,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAA4B,MAAM,kBAAkB,CAAC;AAClG,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE1E,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,0DAA0D;AAC1D,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAGvE,SAAS;AACT,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAE3E,oEAAoE;AACpE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAiB1D,+EAA+E;AAC/E,gFAAgF;AAChF,mFAAmF;AACnF,4EAA4E;AAC5E,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAExE,oCAAoC;AACpC,wEAAwE;AACxE,yEAAyE;AACzE,8CAA8C;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAC1F,OAAO,EAAE,sBAAsB,EAAE,6BAA6B,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAGxH,mBAAmB;AACnB,OAAO,EAAE,YAAY,EAA2C,MAAM,oBAAoB,CAAC;AAE3F,2EAA2E;AAC3E,OAAO,EACL,YAAY,EACZ,aAAa,EACb,aAAa,EACb,YAAY,EACZ,cAAc,EACd,cAAc,EACd,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,qBAAqB,GAItB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,YAAY,EACZ,UAAU,GAKX,MAAM,kBAAkB,CAAC;AAE1B,0EAA0E;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,0BAA0B;AAC1B,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,GAGjB,MAAM,sBAAsB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@metaobjectsdev/migrate-ts",
|
|
3
|
-
"version": "0.20.
|
|
3
|
+
"version": "0.20.8-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.20.
|
|
48
|
+
"@metaobjectsdev/metadata": "0.20.8-rc.1"
|
|
49
49
|
},
|
|
50
50
|
"peerDependencies": {
|
|
51
51
|
"kysely": ">=0.27.0"
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import type { Change, SchemaSnapshot, TableDescriptor } from "../types.js";
|
|
2
|
+
import {
|
|
3
|
+
renderCreateTable,
|
|
4
|
+
renderCreateIndex,
|
|
5
|
+
computeCarryColumns,
|
|
6
|
+
changeTable,
|
|
7
|
+
quote,
|
|
8
|
+
} from "./sqlite.js";
|
|
9
|
+
import { buildFkEdges, unionEdges, affectedSet, topoOrder } from "./fk-graph.js";
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Prefix for the transient rebuild tables the cascade recipe creates
|
|
13
|
+
* (`__f_<table>`). Distinct from SQLite's own `__new_<table>` recreate temp so
|
|
14
|
+
* the two recipes never collide.
|
|
15
|
+
*/
|
|
16
|
+
const TEMP_TABLE_PREFIX = "__f_";
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Result of the D1 FK-cascade emitter: either a validated cascade (with the
|
|
20
|
+
* affected-table set so the dispatcher can partition the remaining changes) or a
|
|
21
|
+
* refusal because the affected tables form a foreign-key cycle.
|
|
22
|
+
*/
|
|
23
|
+
export type D1CascadeResult =
|
|
24
|
+
| { up: string; downWarning: string; affected: Set<string> }
|
|
25
|
+
| { refuseCycle: string[] };
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Emit the D1-legal FK-cascade rebuild for a set of recreated tables and every
|
|
29
|
+
* table transitively referencing them.
|
|
30
|
+
*
|
|
31
|
+
* On remote D1 the plain SQLite recreate-and-copy recipe fails: its `PRAGMA
|
|
32
|
+
* foreign_keys = OFF` is a no-op inside D1's implicit transaction, so dropping a
|
|
33
|
+
* referenced table raises "FOREIGN KEY constraint failed". This emitter instead
|
|
34
|
+
* rebuilds the WHOLE affected set inside one implicit transaction, deferring FK
|
|
35
|
+
* enforcement to commit via `PRAGMA defer_foreign_keys = ON`:
|
|
36
|
+
*
|
|
37
|
+
* 1. `PRAGMA defer_foreign_keys = ON;`
|
|
38
|
+
* 2. CREATE `__f_<t>` for each affected `t` (FKs whose target is also affected
|
|
39
|
+
* are rewritten to the target's temp name).
|
|
40
|
+
* 3. INSERT the carried columns from each old table into its temp.
|
|
41
|
+
* 4. DROP the old tables referrers-first (reverse topological order).
|
|
42
|
+
* 5. RENAME each temp to the real name parents-first (topological order),
|
|
43
|
+
* recreating that table's indexes immediately after its rename.
|
|
44
|
+
*
|
|
45
|
+
* No `BEGIN/COMMIT` and no `foreign_keys = OFF/ON` bracket: D1 runs the file in
|
|
46
|
+
* one implicit transaction and the safety pass would strip the former anyway.
|
|
47
|
+
*
|
|
48
|
+
* `renderD1` only calls this when `actualSchema` is present, so it is required.
|
|
49
|
+
*/
|
|
50
|
+
export function emitD1Cascade(
|
|
51
|
+
changes: readonly Change[],
|
|
52
|
+
expectedSchema: SchemaSnapshot,
|
|
53
|
+
actualSchema: SchemaSnapshot,
|
|
54
|
+
recreatedTables: ReadonlySet<string>,
|
|
55
|
+
): D1CascadeResult {
|
|
56
|
+
const edges = unionEdges(buildFkEdges(expectedSchema), buildFkEdges(actualSchema));
|
|
57
|
+
const affectedAll = affectedSet(recreatedTables, edges);
|
|
58
|
+
|
|
59
|
+
// Restrict to tables that EXIST in the actual DB. `affectedSet` walks the
|
|
60
|
+
// expected edges too, so a brand-new table (created this migration) with an FK
|
|
61
|
+
// into a rebuilt table is pulled in as a referrer — but it cannot be
|
|
62
|
+
// INSERT...SELECTed or DROPped. New tables flow through the native "rest" path,
|
|
63
|
+
// emitted after the cascade so the renamed parent already exists.
|
|
64
|
+
const actualNames = new Set(actualSchema.tables.map((t) => t.name));
|
|
65
|
+
const affected = new Set<string>([...affectedAll].filter((t) => actualNames.has(t)));
|
|
66
|
+
|
|
67
|
+
const { order, cycle } = topoOrder(affected, edges);
|
|
68
|
+
if (cycle) return { refuseCycle: cycle };
|
|
69
|
+
|
|
70
|
+
const expectedByName = new Map(expectedSchema.tables.map((t) => [t.name, t] as const));
|
|
71
|
+
const expectedTable = (name: string): TableDescriptor => {
|
|
72
|
+
const d = expectedByName.get(name);
|
|
73
|
+
if (!d) throw new Error(`expectedSchema missing table "${name}" needed for D1 FK-cascade`);
|
|
74
|
+
return d;
|
|
75
|
+
};
|
|
76
|
+
const temp = (name: string): string => TEMP_TABLE_PREFIX + name;
|
|
77
|
+
|
|
78
|
+
const stmts: string[] = [];
|
|
79
|
+
|
|
80
|
+
// Defer FK enforcement to commit — the D1-legal alternative to the (no-op) OFF bracket.
|
|
81
|
+
stmts.push("PRAGMA defer_foreign_keys = ON;");
|
|
82
|
+
|
|
83
|
+
// CREATE temps. FK targets inside the affected set are rewritten to their temp
|
|
84
|
+
// name (forward-refs are fine — SQLite resolves FK targets lazily); targets
|
|
85
|
+
// outside the set keep their real name.
|
|
86
|
+
for (const t of order) {
|
|
87
|
+
const src = expectedTable(t);
|
|
88
|
+
const clone: TableDescriptor = {
|
|
89
|
+
...src,
|
|
90
|
+
name: temp(t),
|
|
91
|
+
foreignKeys: src.foreignKeys.map((fk) =>
|
|
92
|
+
affected.has(fk.refTable) ? { ...fk, refTable: temp(fk.refTable) } : fk,
|
|
93
|
+
),
|
|
94
|
+
};
|
|
95
|
+
stmts.push(renderCreateTable(clone));
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
// INSERT carried columns. A referrer-only table has no changes → carry every
|
|
99
|
+
// expected column (computeCarryColumns([], …)).
|
|
100
|
+
for (const t of order) {
|
|
101
|
+
const tableChanges = changes.filter((c) => changeTable(c) === t);
|
|
102
|
+
const { insertCols, selectCols } = computeCarryColumns(tableChanges, expectedTable(t));
|
|
103
|
+
if (insertCols.length > 0) {
|
|
104
|
+
stmts.push(
|
|
105
|
+
`INSERT INTO ${quote(temp(t))} (${insertCols.map(quote).join(", ")}) ` +
|
|
106
|
+
`SELECT ${selectCols.map(quote).join(", ")} FROM ${quote(t)};`,
|
|
107
|
+
);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
// DROP referrers-first (reverse topological order).
|
|
112
|
+
for (const t of [...order].reverse()) {
|
|
113
|
+
stmts.push(`DROP TABLE ${quote(t)};`);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
// RENAME parents-first; recreate each table's indexes immediately after rename.
|
|
117
|
+
for (const t of order) {
|
|
118
|
+
stmts.push(`ALTER TABLE ${quote(temp(t))} RENAME TO ${quote(t)};`);
|
|
119
|
+
for (const ix of expectedTable(t).indexes) {
|
|
120
|
+
stmts.push(renderCreateIndex(t, ix));
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
const up = stmts.join("\n\n");
|
|
125
|
+
|
|
126
|
+
// Best-effort down, mirroring renderRecreate's WARNING block.
|
|
127
|
+
const downWarning = [
|
|
128
|
+
`-- WARNING: SQLite recreate-and-copy down migration is best-effort.`,
|
|
129
|
+
`-- Reverse the column type/nullable/default changes by hand if needed.`,
|
|
130
|
+
`-- Dropped data cannot be restored.`,
|
|
131
|
+
].join("\n");
|
|
132
|
+
|
|
133
|
+
return { up, downWarning, affected };
|
|
134
|
+
}
|
package/src/emit/d1-fk-refuse.ts
CHANGED
|
@@ -37,6 +37,33 @@ export class D1ReferencedTableRebuildError extends Error {
|
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
+
/**
|
|
41
|
+
* Thrown when a D1 FK-cascade rebuild (#241) cannot be ordered because the
|
|
42
|
+
* affected tables form a multi-table foreign-key cycle. Unlike the acyclic case
|
|
43
|
+
* (which the cascade emitter rebuilds via `PRAGMA defer_foreign_keys = ON`), a
|
|
44
|
+
* cycle has no parents-first order, so the rebuild is refused at generation time.
|
|
45
|
+
*/
|
|
46
|
+
export class D1CyclicForeignKeyError extends Error {
|
|
47
|
+
constructor(public readonly cycle: string[]) {
|
|
48
|
+
super(formatCycleMessage(cycle));
|
|
49
|
+
this.name = "D1CyclicForeignKeyError";
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
function formatCycleMessage(cycle: string[]): string {
|
|
54
|
+
const members = cycle.map((n) => `"${n}"`).join(", ");
|
|
55
|
+
return (
|
|
56
|
+
`Cannot rebuild the following table(s) on Cloudflare D1 — their foreign keys form a ` +
|
|
57
|
+
`cycle: ${members}.\n\n` +
|
|
58
|
+
`The FK-cascade rebuild recipe recreates tables parents-first, which is impossible ` +
|
|
59
|
+
`when tables reference each other in a cycle. Even with ` +
|
|
60
|
+
"`PRAGMA defer_foreign_keys = ON`" +
|
|
61
|
+
` the DROP/RENAME sequence cannot be ordered to keep every reference valid. To apply ` +
|
|
62
|
+
`this on D1, hand-write the migration (drop the foreign key on one side of the cycle, ` +
|
|
63
|
+
`rebuild the tables, then restore it), or break the cycle in your metadata.`
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
|
|
40
67
|
function formatMessage(refusals: D1RebuildRefusal[]): string {
|
|
41
68
|
const lines = refusals.map((r) => {
|
|
42
69
|
const refs = r.referencedBy.map((n) => `"${n}"`).join(", ");
|
package/src/emit/d1.ts
CHANGED
|
@@ -1,31 +1,82 @@
|
|
|
1
1
|
import type { Change, EmitResult, SchemaSnapshot, SnapshotMeta } from "../types.js";
|
|
2
|
-
import { renderSqlite } from "./sqlite.js";
|
|
2
|
+
import { renderSqlite, changeTable } from "./sqlite.js";
|
|
3
3
|
import { applyD1SafetyPass } from "./d1-safety-pass.js";
|
|
4
|
-
import {
|
|
4
|
+
import {
|
|
5
|
+
findReferencedRebuilds,
|
|
6
|
+
D1ReferencedTableRebuildError,
|
|
7
|
+
D1CyclicForeignKeyError,
|
|
8
|
+
} from "./d1-fk-refuse.js";
|
|
9
|
+
import { buildFkEdges, unionEdges } from "./fk-graph.js";
|
|
10
|
+
import { emitD1Cascade } from "./d1-cascade.js";
|
|
11
|
+
|
|
12
|
+
const EMPTY_SCHEMA: SchemaSnapshot = { tables: [], views: [] };
|
|
5
13
|
|
|
6
14
|
export function renderD1(
|
|
7
15
|
changes: readonly Change[],
|
|
8
16
|
expectedSchema?: SchemaSnapshot,
|
|
9
17
|
actualMeta?: SnapshotMeta,
|
|
18
|
+
/** The actual (introspected) DB schema — enables the #241 FK-cascade rebuild. */
|
|
19
|
+
actualSchema?: SchemaSnapshot,
|
|
10
20
|
): EmitResult {
|
|
11
21
|
const sqliteResult = renderSqlite(changes, expectedSchema, actualMeta);
|
|
12
22
|
|
|
13
|
-
//
|
|
14
|
-
//
|
|
15
|
-
// D1
|
|
16
|
-
//
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
23
|
+
// Trigger detection: is any recreated table the target of a foreign key in the
|
|
24
|
+
// expected OR actual schema (a self-reference counts)? Only such rebuilds are
|
|
25
|
+
// un-appliable on D1 — the recipe's `PRAGMA foreign_keys = OFF` is a no-op
|
|
26
|
+
// inside D1's implicit transaction, so `DROP TABLE <referenced>` fails (#226).
|
|
27
|
+
const edges = unionEdges(
|
|
28
|
+
buildFkEdges(expectedSchema ?? EMPTY_SCHEMA),
|
|
29
|
+
actualSchema ? buildFkEdges(actualSchema) : new Map<string, Set<string>>(),
|
|
30
|
+
);
|
|
31
|
+
const isReferenced = (t: string): boolean => {
|
|
32
|
+
for (const parents of edges.values()) {
|
|
33
|
+
if (parents.has(t)) return true;
|
|
34
|
+
}
|
|
35
|
+
return false;
|
|
36
|
+
};
|
|
37
|
+
const referenced = [...sqliteResult.recreatedTables].filter(isReferenced);
|
|
38
|
+
|
|
39
|
+
// No referenced rebuild → byte-identical to the pre-#241 path.
|
|
40
|
+
if (referenced.length === 0) {
|
|
41
|
+
return {
|
|
42
|
+
up: applyD1SafetyPass(sqliteResult.up),
|
|
43
|
+
down: applyD1SafetyPass(sqliteResult.down),
|
|
44
|
+
recreatedTables: sqliteResult.recreatedTables,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// A referenced rebuild exists. Without the actual schema we cannot prove a
|
|
49
|
+
// cascade is safe, so refuse exactly as #226 does — never emit an unproven one.
|
|
50
|
+
if (actualSchema === undefined) {
|
|
51
|
+
throw new D1ReferencedTableRebuildError(
|
|
52
|
+
findReferencedRebuilds(sqliteResult.recreatedTables, expectedSchema ?? EMPTY_SCHEMA),
|
|
22
53
|
);
|
|
23
|
-
if (refusals.length > 0) throw new D1ReferencedTableRebuildError(refusals);
|
|
24
54
|
}
|
|
25
55
|
|
|
56
|
+
// recreatedTables non-empty ⇒ renderSqlite already guaranteed expectedSchema.
|
|
57
|
+
const cascade = emitD1Cascade(changes, expectedSchema!, actualSchema, sqliteResult.recreatedTables);
|
|
58
|
+
if ("refuseCycle" in cascade) {
|
|
59
|
+
throw new D1CyclicForeignKeyError(cascade.refuseCycle);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// Splice: the affected set is rebuilt by the cascade; every other change flows
|
|
63
|
+
// through the native path, emitted AFTER the cascade so renamed parents exist
|
|
64
|
+
// before any native CREATE TABLE referencing them. `defer_foreign_keys = ON`
|
|
65
|
+
// persists across the whole implicit transaction, so FK checks defer to commit
|
|
66
|
+
// where the final state is consistent.
|
|
67
|
+
const { up: cascadeUp, downWarning, affected } = cascade;
|
|
68
|
+
const nonAffected = changes.filter((c) => {
|
|
69
|
+
const t = changeTable(c);
|
|
70
|
+
return !(t !== undefined && affected.has(t));
|
|
71
|
+
});
|
|
72
|
+
const rest = renderSqlite(nonAffected, expectedSchema, actualMeta);
|
|
73
|
+
|
|
74
|
+
const up = [cascadeUp, rest.up].filter((s) => s.length > 0).join("\n\n");
|
|
75
|
+
const down = [rest.down, downWarning].filter((s) => s.length > 0).join("\n\n");
|
|
76
|
+
|
|
26
77
|
return {
|
|
27
|
-
up: applyD1SafetyPass(
|
|
28
|
-
down: applyD1SafetyPass(
|
|
29
|
-
recreatedTables:
|
|
78
|
+
up: applyD1SafetyPass(up),
|
|
79
|
+
down: applyD1SafetyPass(down),
|
|
80
|
+
recreatedTables: new Set([...affected, ...rest.recreatedTables]),
|
|
30
81
|
};
|
|
31
82
|
}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import type { SchemaSnapshot } from "../types.js";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Pure, I/O-free graph core the D1 FK-cascade emitter orders rebuilds by. Edges
|
|
5
|
+
* point child→parent (a table → the table(s) its foreign keys reference),
|
|
6
|
+
* self-loops included for a self-referential table.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
/** Builds child→parent FK edges from a schema. Self-loops included. */
|
|
10
|
+
export function buildFkEdges(schema: SchemaSnapshot): Map<string, Set<string>> {
|
|
11
|
+
const edges = new Map<string, Set<string>>();
|
|
12
|
+
for (const t of schema.tables) {
|
|
13
|
+
const parents = new Set<string>();
|
|
14
|
+
for (const fk of t.foreignKeys) {
|
|
15
|
+
parents.add(fk.refTable);
|
|
16
|
+
}
|
|
17
|
+
edges.set(t.name, parents);
|
|
18
|
+
}
|
|
19
|
+
return edges;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/** Merges two edge maps into a new one; neither input is mutated. */
|
|
23
|
+
export function unionEdges(
|
|
24
|
+
a: Map<string, Set<string>>,
|
|
25
|
+
b: Map<string, Set<string>>,
|
|
26
|
+
): Map<string, Set<string>> {
|
|
27
|
+
const merged = new Map<string, Set<string>>();
|
|
28
|
+
for (const [node, parents] of a) {
|
|
29
|
+
merged.set(node, new Set(parents));
|
|
30
|
+
}
|
|
31
|
+
for (const [node, parents] of b) {
|
|
32
|
+
const existing = merged.get(node);
|
|
33
|
+
if (existing) {
|
|
34
|
+
for (const p of parents) existing.add(p);
|
|
35
|
+
} else {
|
|
36
|
+
merged.set(node, new Set(parents));
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return merged;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* `recreated` plus every transitive *referrer* — walk edges backwards: any
|
|
44
|
+
* table with an edge into the current set (i.e. it references a member of the
|
|
45
|
+
* set) joins the set, repeated to a fixpoint.
|
|
46
|
+
*/
|
|
47
|
+
export function affectedSet(
|
|
48
|
+
recreated: ReadonlySet<string>,
|
|
49
|
+
edges: Map<string, Set<string>>,
|
|
50
|
+
): Set<string> {
|
|
51
|
+
const affected = new Set<string>(recreated);
|
|
52
|
+
let changed = true;
|
|
53
|
+
while (changed) {
|
|
54
|
+
changed = false;
|
|
55
|
+
for (const [node, parents] of edges) {
|
|
56
|
+
if (affected.has(node)) continue;
|
|
57
|
+
for (const p of parents) {
|
|
58
|
+
if (affected.has(p)) {
|
|
59
|
+
affected.add(node);
|
|
60
|
+
changed = true;
|
|
61
|
+
break;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return affected;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Kahn's algorithm over `nodes`, treating an edge `child→parent` as "parent
|
|
71
|
+
* must come before child". Self-loops (`x→x`) and edges whose target is not
|
|
72
|
+
* in `nodes` are dropped before ordering. `order` is parents-first. If nodes
|
|
73
|
+
* remain when the queue empties, the sort cannot complete — those remaining
|
|
74
|
+
* nodes (a multi-node cycle) are returned as `cycle` instead.
|
|
75
|
+
*/
|
|
76
|
+
export function topoOrder(
|
|
77
|
+
nodes: Set<string>,
|
|
78
|
+
edges: Map<string, Set<string>>,
|
|
79
|
+
): { order: string[]; cycle: string[] | null } {
|
|
80
|
+
// childOf(parent) = children within `nodes` that must be emitted after `parent`.
|
|
81
|
+
const childrenOf = new Map<string, Set<string>>();
|
|
82
|
+
const inDegree = new Map<string, number>();
|
|
83
|
+
for (const n of nodes) {
|
|
84
|
+
childrenOf.set(n, new Set());
|
|
85
|
+
inDegree.set(n, 0);
|
|
86
|
+
}
|
|
87
|
+
for (const n of nodes) {
|
|
88
|
+
const parents = edges.get(n) ?? new Set<string>();
|
|
89
|
+
for (const p of parents) {
|
|
90
|
+
if (p === n) continue; // drop self-loop
|
|
91
|
+
if (!nodes.has(p)) continue; // drop edge leaving `nodes`
|
|
92
|
+
const kids = childrenOf.get(p);
|
|
93
|
+
if (kids === undefined) continue;
|
|
94
|
+
if (kids.has(n)) continue; // already recorded (dedupe parallel edges)
|
|
95
|
+
kids.add(n);
|
|
96
|
+
inDegree.set(n, (inDegree.get(n) ?? 0) + 1);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// Stable order: iterate `nodes` in insertion order for the initial queue.
|
|
101
|
+
const queue: string[] = [];
|
|
102
|
+
for (const n of nodes) {
|
|
103
|
+
if (inDegree.get(n) === 0) queue.push(n);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
const order: string[] = [];
|
|
107
|
+
let head = 0;
|
|
108
|
+
while (head < queue.length) {
|
|
109
|
+
const n = queue[head++];
|
|
110
|
+
if (n === undefined) continue;
|
|
111
|
+
order.push(n);
|
|
112
|
+
for (const child of childrenOf.get(n) ?? []) {
|
|
113
|
+
const remaining = (inDegree.get(child) ?? 0) - 1;
|
|
114
|
+
inDegree.set(child, remaining);
|
|
115
|
+
if (remaining === 0) queue.push(child);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
if (order.length < nodes.size) {
|
|
120
|
+
const remaining = [...nodes].filter((n) => !order.includes(n));
|
|
121
|
+
return { order: [], cycle: remaining };
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
return { order, cycle: null };
|
|
125
|
+
}
|
package/src/emit/index.ts
CHANGED
|
@@ -20,6 +20,8 @@ export interface EmitOptions {
|
|
|
20
20
|
* fall back to recreate-and-copy. Unknown/absent version → assume modern.
|
|
21
21
|
*/
|
|
22
22
|
actualMeta?: SnapshotMeta;
|
|
23
|
+
/** Used by the d1 cascade emitter to build the actual∪expected FK graph. */
|
|
24
|
+
actualSchema?: SchemaSnapshot;
|
|
23
25
|
}
|
|
24
26
|
|
|
25
27
|
export function emit(changes: Change[], opts: EmitOptions): EmitResult {
|
|
@@ -29,6 +31,6 @@ export function emit(changes: Change[], opts: EmitOptions): EmitResult {
|
|
|
29
31
|
switch (opts.dialect) {
|
|
30
32
|
case "postgres": return renderPostgres(changes);
|
|
31
33
|
case "sqlite": return renderSqlite(changes, opts.expectedSchema, opts.actualMeta);
|
|
32
|
-
case "d1": return renderD1(changes, opts.expectedSchema, opts.actualMeta);
|
|
34
|
+
case "d1": return renderD1(changes, opts.expectedSchema, opts.actualMeta, opts.actualSchema);
|
|
33
35
|
}
|
|
34
36
|
}
|
package/src/emit/sqlite.ts
CHANGED
|
@@ -4,6 +4,8 @@ import type {
|
|
|
4
4
|
} from "../types.js";
|
|
5
5
|
import type { SqlType } from "../sql-type.js";
|
|
6
6
|
|
|
7
|
+
export interface CarryColumns { insertCols: string[]; selectCols: string[]; }
|
|
8
|
+
|
|
7
9
|
// Stage ordering similar to PG; recreate-and-copy bundles get inserted
|
|
8
10
|
// at their first triggering change's position in Task 23.
|
|
9
11
|
const STAGE_ORDER: Record<Change["kind"], number> = {
|
|
@@ -106,7 +108,8 @@ export function renderSqlite(
|
|
|
106
108
|
};
|
|
107
109
|
}
|
|
108
110
|
|
|
109
|
-
|
|
111
|
+
/** The table a change targets, or undefined for view-scoped changes. Exported for the D1 FK-cascade emitter (read-only). */
|
|
112
|
+
export function changeTable(c: Change): string | undefined {
|
|
110
113
|
switch (c.kind) {
|
|
111
114
|
case "create-table": return c.table.name;
|
|
112
115
|
case "drop-table": return c.table;
|
|
@@ -129,31 +132,24 @@ function changeTable(c: Change): string | undefined {
|
|
|
129
132
|
}
|
|
130
133
|
}
|
|
131
134
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
tableChanges: Change[],
|
|
135
|
-
newTable: TableDescriptor,
|
|
136
|
-
): { up: string; down: string } {
|
|
137
|
-
// Build the column-name remapping: old_name → new_name (for renames).
|
|
135
|
+
/** newTable columns not newly-added, mapped to their old-name SELECT source (for renames). */
|
|
136
|
+
export function computeCarryColumns(tableChanges: Change[], newTable: TableDescriptor): CarryColumns {
|
|
138
137
|
const renames = new Map<string, string>();
|
|
139
|
-
for (const c of tableChanges)
|
|
140
|
-
if (c.kind === "rename-column") renames.set(c.from, c.to);
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
// Columns added in this migration don't exist in old table — exclude from SELECT.
|
|
138
|
+
for (const c of tableChanges) if (c.kind === "rename-column") renames.set(c.from, c.to);
|
|
144
139
|
const addedNames = new Set<string>();
|
|
145
|
-
for (const c of tableChanges)
|
|
146
|
-
if (c.kind === "add-column") addedNames.add(c.column.name);
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
// Reverse map: new_name → old_name (for SELECT source column lookup).
|
|
140
|
+
for (const c of tableChanges) if (c.kind === "add-column") addedNames.add(c.column.name);
|
|
150
141
|
const renamesReverse = new Map<string, string>();
|
|
151
142
|
for (const [from, to] of renames) renamesReverse.set(to, from);
|
|
143
|
+
const carry = newTable.columns.filter((c) => !addedNames.has(c.name));
|
|
144
|
+
return { insertCols: carry.map((c) => c.name), selectCols: carry.map((c) => renamesReverse.get(c.name) ?? c.name) };
|
|
145
|
+
}
|
|
152
146
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
147
|
+
function renderRecreate(
|
|
148
|
+
table: string,
|
|
149
|
+
tableChanges: Change[],
|
|
150
|
+
newTable: TableDescriptor,
|
|
151
|
+
): { up: string; down: string } {
|
|
152
|
+
const { insertCols, selectCols } = computeCarryColumns(tableChanges, newTable);
|
|
157
153
|
|
|
158
154
|
// Build the new-table CREATE using temp name.
|
|
159
155
|
const tmp = `__new_${table}`;
|
|
@@ -254,7 +250,7 @@ function renderDownNative(c: Change): string {
|
|
|
254
250
|
}
|
|
255
251
|
}
|
|
256
252
|
|
|
257
|
-
function renderCreateTable(t: TableDescriptor): string {
|
|
253
|
+
export function renderCreateTable(t: TableDescriptor): string {
|
|
258
254
|
const compositePk = t.primaryKey.length > 1;
|
|
259
255
|
const colDefs = t.columns.map((c) => {
|
|
260
256
|
const isSinglePk = !compositePk && t.primaryKey[0] === c.name;
|
|
@@ -364,7 +360,7 @@ function renderDefault(d: ColumnDefault, t: SqlType): string {
|
|
|
364
360
|
}
|
|
365
361
|
}
|
|
366
362
|
|
|
367
|
-
function renderCreateIndex(table: string, ix: IndexDescriptor): string {
|
|
363
|
+
export function renderCreateIndex(table: string, ix: IndexDescriptor): string {
|
|
368
364
|
const u = ix.unique ? "UNIQUE " : "";
|
|
369
365
|
// SQLite natively supports expression indexes, per-column DESC, and partial
|
|
370
366
|
// (WHERE) indexes — render all three. Dropping them is not an option:
|
|
@@ -386,7 +382,8 @@ function renderCreateIndex(table: string, ix: IndexDescriptor): string {
|
|
|
386
382
|
return `CREATE ${u}INDEX ${quote(ix.name)} ON ${quote(table)} (${keys})${where};`;
|
|
387
383
|
}
|
|
388
384
|
|
|
389
|
-
|
|
385
|
+
/** SQLite identifier quoter (`"id"`). Exported for the D1 FK-cascade emitter (read-only). */
|
|
386
|
+
export function quote(ident: string): string {
|
|
390
387
|
if (ident.includes('"')) throw new Error(`unsafe identifier: ${ident}`);
|
|
391
388
|
return `"${ident}"`;
|
|
392
389
|
}
|
package/src/index.ts
CHANGED
|
@@ -63,7 +63,7 @@ export { normalizeViewSql, viewSqlEquals } from "./view-sql-compare.js";
|
|
|
63
63
|
// independently without going through emit().
|
|
64
64
|
export { renderD1 } from "./emit/d1.js";
|
|
65
65
|
export { applyD1SafetyPass, D1UnsupportedStatementError } from "./emit/d1-safety-pass.js";
|
|
66
|
-
export { findReferencedRebuilds, D1ReferencedTableRebuildError } from "./emit/d1-fk-refuse.js";
|
|
66
|
+
export { findReferencedRebuilds, D1ReferencedTableRebuildError, D1CyclicForeignKeyError } from "./emit/d1-fk-refuse.js";
|
|
67
67
|
export type { D1RebuildRefusal } from "./emit/d1-fk-refuse.js";
|
|
68
68
|
|
|
69
69
|
// D1 introspection
|