@metaobjectsdev/migrate-ts 0.20.1-rc.1 → 0.20.2-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":"check-expr-compare.d.ts","sourceRoot":"","sources":["../src/check-expr-compare.ts"],"names":[],"mappings":"AAcA,yHAAyH;AACzH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAwBvD;AAED,0EAA0E;AAC1E,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAGrF;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAGrD"}
1
+ {"version":3,"file":"check-expr-compare.d.ts","sourceRoot":"","sources":["../src/check-expr-compare.ts"],"names":[],"mappings":"AAcA,yHAAyH;AACzH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA+BvD;AAqCD,0EAA0E;AAC1E,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAGrF;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAGrD"}
@@ -35,7 +35,52 @@ export function normalizeCheckExpr(expr) {
35
35
  .trim();
36
36
  // PG stores `col IN (…)` as `col = ANY (ARRAY[…])`; after the bracket strip above
37
37
  // that reads `col = any array …`. Fold it back to the `col in …` form we emit.
38
- return stripped.replace(/=\s*any\s+array/g, "in").replace(/\s+/g, " ").trim();
38
+ const folded = stripped.replace(/=\s*any\s+array/g, "in").replace(/\s+/g, " ").trim();
39
+ // Normalize spacing AROUND COMMAS so a generated IN-list (`'a', 'b'`) compares equal
40
+ // to a hand-written one (`'a','b'`) — the separator commas are never semantically
41
+ // meaningful, and a hand SQLite migration omits the space. This is done OUTSIDE
42
+ // single-quoted literals only: a comma inside a string/regex literal (`'a, b'`, or a
43
+ // quantifier `'{1, 3}'`) IS meaningful, so two checks that differ only there must
44
+ // stay distinct (else a real regex/predicate change reads as clean drift).
45
+ return collapseCommaSpacingOutsideQuotes(folded);
46
+ }
47
+ /** Collapse `\s*,\s*` → `,` OUTSIDE single-quoted literals (see normalizeCheckExpr). */
48
+ function collapseCommaSpacingOutsideQuotes(s) {
49
+ let out = "";
50
+ let i = 0;
51
+ const n = s.length;
52
+ while (i < n) {
53
+ const ch = s[i];
54
+ if (ch === "'") {
55
+ // Copy the single-quoted literal verbatim ('' escapes honored) — never touched.
56
+ const start = i;
57
+ i++;
58
+ while (i < n) {
59
+ if (s[i] === "'") {
60
+ if (s[i + 1] === "'") {
61
+ i += 2;
62
+ continue;
63
+ }
64
+ i++;
65
+ break;
66
+ }
67
+ i++;
68
+ }
69
+ out += s.slice(start, i);
70
+ continue;
71
+ }
72
+ if (ch === ",") {
73
+ out = out.replace(/\s+$/, ""); // drop whitespace already emitted before it
74
+ out += ",";
75
+ i++;
76
+ while (i < n && /\s/.test(s[i]))
77
+ i++; // skip whitespace after it
78
+ continue;
79
+ }
80
+ out += ch;
81
+ i++;
82
+ }
83
+ return out;
39
84
  }
40
85
  /** True when two CHECK expressions are equivalent after normalization. */
41
86
  export function checkExprEquals(a, b) {
@@ -1 +1 @@
1
- {"version":3,"file":"check-expr-compare.js","sourceRoot":"","sources":["../src/check-expr-compare.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,EAAE;AACF,gFAAgF;AAChF,gFAAgF;AAChF,+EAA+E;AAC/E,iFAAiF;AACjF,iFAAiF;AACjF,2EAA2E;AAC3E,wFAAwF;AACxF,wGAAwG;AACxG,2DAA2D;AAC3D,gFAAgF;AAChF,uFAAuF;AAEvF,yHAAyH;AACzH,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,MAAM,QAAQ,GAAG,IAAI;SAClB,WAAW,EAAE;QACd,8EAA8E;QAC9E,0EAA0E;QAC1E,6EAA6E;QAC7E,+EAA+E;QAC/E,iEAAiE;SAChE,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC;QACnC,6EAA6E;QAC7E,4EAA4E;QAC5E,6EAA6E;QAC7E,wEAAwE;QACxE,8EAA8E;QAC9E,0EAA0E;QAC1E,yEAAyE;QACzE,8CAA8C;SAC7C,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC;SACzB,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAK,6CAA6C;SAC1E,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE,CAAC;IACV,kFAAkF;IAClF,+EAA+E;IAC/E,OAAO,QAAQ,CAAC,OAAO,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAChF,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,eAAe,CAAC,CAAqB,EAAE,CAAqB;IAC1E,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACrD,OAAO,kBAAkB,CAAC,CAAC,CAAC,KAAK,kBAAkB,CAAC,CAAC,CAAC,CAAC;AACzD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,MAAM,CAAC,GAAG,+CAA+C,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;AACvC,CAAC"}
1
+ {"version":3,"file":"check-expr-compare.js","sourceRoot":"","sources":["../src/check-expr-compare.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,EAAE;AACF,gFAAgF;AAChF,gFAAgF;AAChF,+EAA+E;AAC/E,iFAAiF;AACjF,iFAAiF;AACjF,2EAA2E;AAC3E,wFAAwF;AACxF,wGAAwG;AACxG,2DAA2D;AAC3D,gFAAgF;AAChF,uFAAuF;AAEvF,yHAAyH;AACzH,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,MAAM,QAAQ,GAAG,IAAI;SAClB,WAAW,EAAE;QACd,8EAA8E;QAC9E,0EAA0E;QAC1E,6EAA6E;QAC7E,+EAA+E;QAC/E,iEAAiE;SAChE,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC;QACnC,6EAA6E;QAC7E,4EAA4E;QAC5E,6EAA6E;QAC7E,wEAAwE;QACxE,8EAA8E;QAC9E,0EAA0E;QAC1E,yEAAyE;QACzE,8CAA8C;SAC7C,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC;SACzB,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAK,6CAA6C;SAC1E,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE,CAAC;IACV,kFAAkF;IAClF,+EAA+E;IAC/E,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACtF,qFAAqF;IACrF,kFAAkF;IAClF,gFAAgF;IAChF,qFAAqF;IACrF,kFAAkF;IAClF,2EAA2E;IAC3E,OAAO,iCAAiC,CAAC,MAAM,CAAC,CAAC;AACnD,CAAC;AAED,wFAAwF;AACxF,SAAS,iCAAiC,CAAC,CAAS;IAClD,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IACnB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACb,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;QACjB,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACf,gFAAgF;YAChF,MAAM,KAAK,GAAG,CAAC,CAAC;YAChB,CAAC,EAAE,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBACb,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;oBACjB,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;wBAAC,CAAC,IAAI,CAAC,CAAC;wBAAC,SAAS;oBAAC,CAAC;oBAC3C,CAAC,EAAE,CAAC;oBACJ,MAAM;gBACR,CAAC;gBACD,CAAC,EAAE,CAAC;YACN,CAAC;YACD,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACzB,SAAS;QACX,CAAC;QACD,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACf,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAW,4CAA4C;YACrF,GAAG,IAAI,GAAG,CAAC;YACX,CAAC,EAAE,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC;gBAAE,CAAC,EAAE,CAAC,CAAI,2BAA2B;YACrE,SAAS;QACX,CAAC;QACD,GAAG,IAAI,EAAE,CAAC;QACV,CAAC,EAAE,CAAC;IACN,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,eAAe,CAAC,CAAqB,EAAE,CAAqB;IAC1E,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACrD,OAAO,kBAAkB,CAAC,CAAC,CAAC,KAAK,kBAAkB,CAAC,CAAC,CAAC,CAAC;AACzD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,MAAM,CAAC,GAAG,+CAA+C,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;AACvC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/diff/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EAGQ,UAAU,EAAE,YAAY,EAAE,iBAAiB,EAAE,OAAO,EAC3E,MAAM,aAAa,CAAC;AAUrB,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,cAAc,CAAC;IACzB,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC;;;;;;;;;OASG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;;;;;;;;;;;;OAcG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,2FAA2F;IAC3F,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAgDD;;;;;;;;GAQG;AACH,wBAAsB,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAChE,wBAAsB,IAAI,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,GAAG,QAAQ,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/diff/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EAGQ,UAAU,EAAE,YAAY,EAAE,iBAAiB,EAAE,OAAO,EAE3E,MAAM,aAAa,CAAC;AAUrB,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,cAAc,CAAC;IACzB,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC;;;;;;;;;OASG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;;;;;;;;;;;;OAcG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,2FAA2F;IAC3F,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAgDD;;;;;;;;GAQG;AACH,wBAAsB,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAChE,wBAAsB,IAAI,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,GAAG,QAAQ,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC"}
@@ -118,7 +118,7 @@ export async function diff(argsOrExpected, actualMaybe, optsMaybe) {
118
118
  const actualTable = actualTables.get(id);
119
119
  if (!actualTable)
120
120
  continue;
121
- diffTableColumns(expectedTable, actualTable, changes);
121
+ diffTableColumns(expectedTable, actualTable, changes, args.dialect);
122
122
  diffTableIndexes(expectedTable, actualTable, changes);
123
123
  diffTableForeignKeys(expectedTable, actualTable, changes, args.dialect);
124
124
  // CHECK constraints on existing tables are evolved whenever a dialect is
@@ -130,7 +130,7 @@ export async function diff(argsOrExpected, actualMaybe, optsMaybe) {
130
130
  // callers may hold hand-built snapshots with empty check lists, and
131
131
  // diffing them would re-propose every modeled check forever.
132
132
  if (args.dialect !== undefined)
133
- diffTableChecks(expectedTable, actualTable, changes);
133
+ diffTableChecks(expectedTable, actualTable, changes, args.dialect);
134
134
  }
135
135
  // Pass 2b: views. Identity is (schema, name). How "changed" is decided is
136
136
  // DIALECT-DEPENDENT — see diffViews.
@@ -168,7 +168,30 @@ export async function diff(argsOrExpected, actualMaybe, optsMaybe) {
168
168
  function isDiffArgs(x) {
169
169
  return "expected" in x && "actual" in x;
170
170
  }
171
- function diffTableColumns(expected, actual, changes) {
171
+ /**
172
+ * Collapse a SqlType to what SQLite/D1 can PHYSICALLY store, so the diff never
173
+ * reports drift the database could never represent (and thus could never fix).
174
+ *
175
+ * SQLite/D1 has a single text storage class: `json` is stored as TEXT (no native
176
+ * json type), and a `VARCHAR(N)` length is cosmetic — not enforced — so a bounded
177
+ * and an unbounded text column are the same physical column. Both collapse to bare
178
+ * `text`. The tool's own emit round-trips are unaffected (VARCHAR(8) and TEXT both
179
+ * canon to `text`), while a hand-written `TEXT` column now matches maxLength'd /
180
+ * jsonb metadata. Postgres represents both faithfully and is left exact.
181
+ */
182
+ function canonTypeForDialect(t, dialect) {
183
+ if (dialect !== "sqlite" && dialect !== "d1")
184
+ return t;
185
+ if (t.kind === "json")
186
+ return { kind: "text" };
187
+ if (t.kind === "text" && t.maxLength !== undefined)
188
+ return { kind: "text" };
189
+ return t;
190
+ }
191
+ function sqlTypeEqualsForDialect(a, b, dialect) {
192
+ return sqlTypeEquals(canonTypeForDialect(a, dialect), canonTypeForDialect(b, dialect));
193
+ }
194
+ function diffTableColumns(expected, actual, changes, dialect) {
172
195
  const table = expected.name;
173
196
  const sx = schemaSpread(expected.schema);
174
197
  const expectedCols = new Map(expected.columns.map((c) => [c.name, c]));
@@ -179,8 +202,11 @@ function diffTableColumns(expected, actual, changes) {
179
202
  changes.push({ kind: "add-column", table, ...sx, column: ec, status: ALLOWED });
180
203
  continue;
181
204
  }
182
- // Compare type, nullable, default — emit per-aspect change.
183
- if (!sqlTypeEquals(ec.sqlType, ac.sqlType)) {
205
+ // Compare type, nullable, default — emit per-aspect change. Type equality is
206
+ // dialect-aware: SQLite/D1 cannot physically represent a VARCHAR length or a
207
+ // native json type, so those distinctions must not read as drift (see
208
+ // canonTypeForDialect). Postgres stays exact.
209
+ if (!sqlTypeEqualsForDialect(ec.sqlType, ac.sqlType, dialect)) {
184
210
  changes.push({
185
211
  kind: "change-column-type", table, ...sx, column: name,
186
212
  from: ac.sqlType, to: ec.sqlType, status: ALLOWED,
@@ -312,24 +338,44 @@ function diffTableForeignKeys(expected, actual, changes, dialect) {
312
338
  }
313
339
  }
314
340
  }
315
- function diffTableChecks(expected, actual, changes) {
341
+ function diffTableChecks(expected, actual, changes, dialect) {
316
342
  const sx = schemaSpread(expected.schema);
317
- const expectedChk = new Map(expected.checks.map((c) => [c.name, c]));
318
- const actualChk = new Map(actual.checks.map((c) => [c.name, c]));
319
- for (const [name, ec] of expectedChk) {
320
- const ac = actualChk.get(name);
321
- if (!ac) {
322
- changes.push({ kind: "add-check", table: expected.name, ...sx, check: ec, status: ALLOWED });
343
+ // SQLite/D1 stores no constraint identity for an inline `CHECK ()`, so hand-written
344
+ // DDL yields anonymous (empty-name) checks. When an expected named check has no
345
+ // same-name actual, fall back to matching by NORMALIZED EXPRESSION so an
346
+ // already-enforced constraint is not re-proposed as add-check (and its actual is not
347
+ // re-proposed as drop-check). The fallback scans ALL still-unconsumed actual checks,
348
+ // so it also reconciles a name-MISMATCHED actual (a check the DB named differently
349
+ // than the model's generated `<table>_<col>_chk`), not only truly-anonymous ones —
350
+ // beneficial and safe: the name-keyed pass runs first, so a genuine expression change
351
+ // on a name-matched check is still caught as drop+add. Postgres constraints are always
352
+ // named, so it keeps the exact name-keyed behavior (exprFallback off).
353
+ const exprFallback = dialect === "sqlite" || dialect === "d1";
354
+ const actualByName = new Map(actual.checks.filter((c) => c.name !== "").map((c) => [c.name, c]));
355
+ const consumed = new Set();
356
+ for (const ec of expected.checks) {
357
+ const ac = actualByName.get(ec.name);
358
+ if (ac) {
359
+ consumed.add(ac);
360
+ if (!checkExprEquals(ec.expression, ac.expression)) {
361
+ changes.push({ kind: "drop-check", table: expected.name, ...sx, check: ec.name, restore: ac, status: ALLOWED });
362
+ changes.push({ kind: "add-check", table: expected.name, ...sx, check: ec, status: ALLOWED });
363
+ }
364
+ continue;
323
365
  }
324
- else if (!checkExprEquals(ec.expression, ac.expression)) {
325
- changes.push({ kind: "drop-check", table: expected.name, ...sx, check: name, restore: ac, status: ALLOWED });
326
- changes.push({ kind: "add-check", table: expected.name, ...sx, check: ec, status: ALLOWED });
366
+ if (exprFallback) {
367
+ const match = actual.checks.find((a) => !consumed.has(a) && checkExprEquals(ec.expression, a.expression));
368
+ if (match) {
369
+ consumed.add(match);
370
+ continue;
371
+ }
327
372
  }
373
+ changes.push({ kind: "add-check", table: expected.name, ...sx, check: ec, status: ALLOWED });
328
374
  }
329
- for (const [name, ac] of actualChk) {
330
- if (!expectedChk.has(name)) {
331
- changes.push({ kind: "drop-check", table: expected.name, ...sx, check: name, restore: ac, status: ALLOWED });
332
- }
375
+ for (const ac of actual.checks) {
376
+ if (consumed.has(ac))
377
+ continue;
378
+ changes.push({ kind: "drop-check", table: expected.name, ...sx, check: ac.name, restore: ac, status: ALLOWED });
333
379
  }
334
380
  }
335
381
  function viewIdentity(v) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/diff/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/diff/index.ts"],"names":[],"mappings":"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"}
@@ -21,9 +21,13 @@ export declare function sqliteTypeToSqlType(declaredType: string): SqlType;
21
21
  * Without it the actual side always reported `checks: []` and every expected
22
22
  * check re-surfaced as add-check on every single run.
23
23
  *
24
- * Unnamed checks (`CHECK (…)` with no CONSTRAINT clause — hand-written DDL) are
25
- * NOT parsed: they have no identity to match on. A modeled check over such a
26
- * table converges after one recreate (which rewrites it in named form).
24
+ * Unnamed inline checks (`CHECK (…)` with no CONSTRAINT clause — the idiomatic
25
+ * hand-written-migration form) ARE parsed, with an empty name. They have no
26
+ * identity to match by name, so the diff reconciles them by NORMALIZED EXPRESSION
27
+ * on sqlite/d1: an anonymous DB check that already enforces a modeled constraint
28
+ * is matched to the expected named check rather than re-proposed as add-check.
29
+ * (Before, they were skipped entirely, so every modeled check over such a table
30
+ * re-surfaced as false drift on `verify --dialect d1` on every run.)
27
31
  *
28
32
  * The expression is scanned with balanced parens and string-literal awareness
29
33
  * (an enum member may contain `(`/`)`), and returned verbatim — the diff's
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite-shared.d.ts","sourceRoot":"","sources":["../../src/introspect/sqlite-shared.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC7F,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE9C,eAAO,MAAM,4BAA4B,2CAK/B,CAAC;AAEX,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,aAAa,GAAG,SAAS,CAuBhF;AAED,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CA0CjE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,eAAe,EAAE,CAgCzF;AA6BD,MAAM,WAAW,oBAAoB;IACnC,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC;IAChB,2EAA2E;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,oBAAoB,GAAG,SAAS,CA+B1G;AAED,sEAAsE;AACtE,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,+EAA+E;AAC/E,MAAM,WAAW,oBAAoB;IACnC,0DAA0D;IAC1D,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,wCAAwC;IACxC,IAAI,EAAE,OAAO,CAAC;CACf;AAED;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,oBAAoB,EAC3B,UAAU,EAAE,SAAS,oBAAoB,EAAE,EAC3C,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACnC,eAAe,CAkBjB;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAMzD"}
1
+ {"version":3,"file":"sqlite-shared.d.ts","sourceRoot":"","sources":["../../src/introspect/sqlite-shared.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC7F,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE9C,eAAO,MAAM,4BAA4B,2CAK/B,CAAC;AAEX,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,aAAa,GAAG,SAAS,CAiChF;AAED,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CA0CjE;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,eAAe,EAAE,CAwCzF;AAiED,MAAM,WAAW,oBAAoB;IACnC,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC;IAChB,2EAA2E;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,oBAAoB,GAAG,SAAS,CA+B1G;AAED,sEAAsE;AACtE,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,+EAA+E;AAC/E,MAAM,WAAW,oBAAoB;IACnC,0DAA0D;IAC1D,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,wCAAwC;IACxC,IAAI,EAAE,OAAO,CAAC;CACf;AAED;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,oBAAoB,EAC3B,UAAU,EAAE,SAAS,oBAAoB,EAAE,EAC3C,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACnC,eAAe,CAkBjB;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAMzD"}
@@ -7,6 +7,16 @@ export const SQLITE_EXPR_DEFAULT_PATTERNS = [
7
7
  export function parseSqliteDefault(raw) {
8
8
  if (raw === null || raw === undefined || raw === "")
9
9
  return undefined;
10
+ // A bare (unquoted) NULL keyword is SQL for "no default": `DEFAULT NULL` is
11
+ // functionally identical to declaring no default at all. It reaches us as the
12
+ // JSON string "null" from the D1/wrangler runner (which stringifies a SQL NULL
13
+ // dflt_value) or as `NULL` from parsed DDL. A GENUINE string literal default of
14
+ // "null" is QUOTED (`'null'`) and is matched by the quoted branch below, so this
15
+ // bare test is unambiguous. Without it every no-default column on D1 reads back a
16
+ // literal "null" default that no metadata field ever declares — permanent, and on
17
+ // SQLite/D1 destructive (recreate-and-copy) false drift on every verify/migrate.
18
+ if (raw.trim().toLowerCase() === "null")
19
+ return undefined;
10
20
  // A QUOTE-WRAPPED value is a string literal BY CONSTRUCTION — SQLite always quotes a
11
21
  // literal string default. This test MUST come before the expr patterns: one of those
12
22
  // patterns is a bare /\(.*\)/, so a perfectly ordinary literal containing parentheses
@@ -86,9 +96,13 @@ export function sqliteTypeToSqlType(declaredType) {
86
96
  * Without it the actual side always reported `checks: []` and every expected
87
97
  * check re-surfaced as add-check on every single run.
88
98
  *
89
- * Unnamed checks (`CHECK (…)` with no CONSTRAINT clause — hand-written DDL) are
90
- * NOT parsed: they have no identity to match on. A modeled check over such a
91
- * table converges after one recreate (which rewrites it in named form).
99
+ * Unnamed inline checks (`CHECK (…)` with no CONSTRAINT clause — the idiomatic
100
+ * hand-written-migration form) ARE parsed, with an empty name. They have no
101
+ * identity to match by name, so the diff reconciles them by NORMALIZED EXPRESSION
102
+ * on sqlite/d1: an anonymous DB check that already enforces a modeled constraint
103
+ * is matched to the expected named check rather than re-proposed as add-check.
104
+ * (Before, they were skipped entirely, so every modeled check over such a table
105
+ * re-surfaced as false drift on `verify --dialect d1` on every run.)
92
106
  *
93
107
  * The expression is scanned with balanced parens and string-literal awareness
94
108
  * (an enum member may contain `(`/`)`), and returned verbatim — the diff's
@@ -98,10 +112,18 @@ export function parseSqliteChecks(createSql) {
98
112
  if (createSql === null || createSql === undefined || createSql === "")
99
113
  return [];
100
114
  const out = [];
101
- const re = /\bCONSTRAINT\s+(?:"((?:[^"]|"")+)"|([A-Za-z_][A-Za-z0-9_$]*))\s+CHECK\s*\(/gi;
115
+ // Find `CHECK (` on a MASKED copy (comments + single-quoted literals blanked to
116
+ // spaces of equal length) so a `CHECK (` appearing inside a `--`/`/* */` comment
117
+ // or a string literal (`DEFAULT 'see CHECK (x)'`) can NEVER be mis-parsed as a
118
+ // constraint. Positions are 1:1, so the balanced expression is sliced from the
119
+ // ORIGINAL (with its real quotes intact).
120
+ const masked = maskCommentsAndStrings(createSql);
121
+ // An optional `CONSTRAINT <name>` prefix then `CHECK (`. Named → group 1/2;
122
+ // bare inline `CHECK (` → name defaults to "" (anonymous, expression-matched).
123
+ const re = /(?:\bCONSTRAINT\s+(?:"((?:[^"]|"")+)"|([A-Za-z_][A-Za-z0-9_$]*))\s+)?\bCHECK\s*\(/gi;
102
124
  let m;
103
- while ((m = re.exec(createSql)) !== null) {
104
- const name = m[1] !== undefined ? m[1].replace(/""/g, '"') : m[2];
125
+ while ((m = re.exec(masked)) !== null) {
126
+ const name = m[1] !== undefined ? m[1].replace(/""/g, '"') : (m[2] ?? "");
105
127
  const open = re.lastIndex - 1; // position of the "(" the regex just consumed
106
128
  let depth = 0;
107
129
  let inString = false;
@@ -136,6 +158,51 @@ export function parseSqliteChecks(createSql) {
136
158
  }
137
159
  return out;
138
160
  }
161
+ /**
162
+ * Same-length copy of a CREATE TABLE DDL with SQL comments (`--` line, `/* *\/`
163
+ * block) and single-quoted string literals blanked to spaces, so a token scan
164
+ * (e.g. the CHECK finder) cannot match inside them. Double-quoted identifiers are
165
+ * PRESERVED — a constraint or column name may be double-quoted, and none legitimately
166
+ * contains a `CHECK (` token. Positions are unchanged for downstream slicing.
167
+ */
168
+ function maskCommentsAndStrings(sql) {
169
+ const chars = sql.split("");
170
+ let i = 0;
171
+ const n = sql.length;
172
+ while (i < n) {
173
+ const ch = sql[i];
174
+ if (ch === "'") {
175
+ const end = skipSingleQuoted(sql, i);
176
+ for (let j = i; j < end; j++)
177
+ chars[j] = " ";
178
+ i = end;
179
+ }
180
+ else if (ch === '"') {
181
+ i = skipDoubleQuoted(sql, i); // preserve the identifier verbatim
182
+ }
183
+ else if (ch === "-" && sql[i + 1] === "-") {
184
+ let j = i;
185
+ while (j < n && sql[j] !== "\n") {
186
+ chars[j] = " ";
187
+ j++;
188
+ }
189
+ i = j;
190
+ }
191
+ else if (ch === "/" && sql[i + 1] === "*") {
192
+ let j = i + 2;
193
+ while (j < n && !(sql[j] === "*" && sql[j + 1] === "/"))
194
+ j++;
195
+ const end = Math.min(n, j + 2);
196
+ for (let k = i; k < end; k++)
197
+ chars[k] = " ";
198
+ i = end;
199
+ }
200
+ else {
201
+ i++;
202
+ }
203
+ }
204
+ return chars.join("");
205
+ }
139
206
  /** Skip a single-quoted SQL string starting at `i` (position of the opening
140
207
  * quote); returns the position just past the closing quote ('' escapes honored). */
141
208
  function skipSingleQuoted(s, i) {
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite-shared.js","sourceRoot":"","sources":["../../src/introspect/sqlite-shared.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sqlite-shared.js","sourceRoot":"","sources":["../../src/introspect/sqlite-shared.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.20.1-rc.1",
3
+ "version": "0.20.2-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.1-rc.1"
48
+ "@metaobjectsdev/metadata": "0.20.2-rc.1"
49
49
  },
50
50
  "peerDependencies": {
51
51
  "kysely": ">=0.27.0"
@@ -36,7 +36,49 @@ export function normalizeCheckExpr(expr: string): string {
36
36
  .trim();
37
37
  // PG stores `col IN (…)` as `col = ANY (ARRAY[…])`; after the bracket strip above
38
38
  // that reads `col = any array …`. Fold it back to the `col in …` form we emit.
39
- return stripped.replace(/=\s*any\s+array/g, "in").replace(/\s+/g, " ").trim();
39
+ const folded = stripped.replace(/=\s*any\s+array/g, "in").replace(/\s+/g, " ").trim();
40
+ // Normalize spacing AROUND COMMAS so a generated IN-list (`'a', 'b'`) compares equal
41
+ // to a hand-written one (`'a','b'`) — the separator commas are never semantically
42
+ // meaningful, and a hand SQLite migration omits the space. This is done OUTSIDE
43
+ // single-quoted literals only: a comma inside a string/regex literal (`'a, b'`, or a
44
+ // quantifier `'{1, 3}'`) IS meaningful, so two checks that differ only there must
45
+ // stay distinct (else a real regex/predicate change reads as clean drift).
46
+ return collapseCommaSpacingOutsideQuotes(folded);
47
+ }
48
+
49
+ /** Collapse `\s*,\s*` → `,` OUTSIDE single-quoted literals (see normalizeCheckExpr). */
50
+ function collapseCommaSpacingOutsideQuotes(s: string): string {
51
+ let out = "";
52
+ let i = 0;
53
+ const n = s.length;
54
+ while (i < n) {
55
+ const ch = s[i]!;
56
+ if (ch === "'") {
57
+ // Copy the single-quoted literal verbatim ('' escapes honored) — never touched.
58
+ const start = i;
59
+ i++;
60
+ while (i < n) {
61
+ if (s[i] === "'") {
62
+ if (s[i + 1] === "'") { i += 2; continue; }
63
+ i++;
64
+ break;
65
+ }
66
+ i++;
67
+ }
68
+ out += s.slice(start, i);
69
+ continue;
70
+ }
71
+ if (ch === ",") {
72
+ out = out.replace(/\s+$/, ""); // drop whitespace already emitted before it
73
+ out += ",";
74
+ i++;
75
+ while (i < n && /\s/.test(s[i]!)) i++; // skip whitespace after it
76
+ continue;
77
+ }
78
+ out += ch;
79
+ i++;
80
+ }
81
+ return out;
40
82
  }
41
83
 
42
84
  /** True when two CHECK expressions are equivalent after normalization. */
package/src/diff/index.ts CHANGED
@@ -3,6 +3,7 @@ import type {
3
3
  ViewDescriptor,
4
4
  DependentRelation,
5
5
  Change, ChangeStatus, DiffResult, AllowOptions, AmbiguousCallback, Dialect,
6
+ CheckDescriptor,
6
7
  } from "../types.js";
7
8
  import type { SqlType } from "../sql-type.js";
8
9
  import { sqlTypeEquals } from "../sql-type.js";
@@ -212,7 +213,7 @@ export async function diff(
212
213
  for (const [id, expectedTable] of expectedTables) {
213
214
  const actualTable = actualTables.get(id);
214
215
  if (!actualTable) continue;
215
- diffTableColumns(expectedTable, actualTable, changes);
216
+ diffTableColumns(expectedTable, actualTable, changes, args.dialect);
216
217
  diffTableIndexes(expectedTable, actualTable, changes);
217
218
  diffTableForeignKeys(expectedTable, actualTable, changes, args.dialect);
218
219
  // CHECK constraints on existing tables are evolved whenever a dialect is
@@ -223,7 +224,7 @@ export async function diff(
223
224
  // no dialect (legacy positional callers) checks stay un-diffed — those
224
225
  // callers may hold hand-built snapshots with empty check lists, and
225
226
  // diffing them would re-propose every modeled check forever.
226
- if (args.dialect !== undefined) diffTableChecks(expectedTable, actualTable, changes);
227
+ if (args.dialect !== undefined) diffTableChecks(expectedTable, actualTable, changes, args.dialect);
227
228
  }
228
229
 
229
230
  // Pass 2b: views. Identity is (schema, name). How "changed" is decided is
@@ -272,10 +273,33 @@ function isDiffArgs(x: DiffArgs | SchemaSnapshot): x is DiffArgs {
272
273
  return "expected" in x && "actual" in x;
273
274
  }
274
275
 
276
+ /**
277
+ * Collapse a SqlType to what SQLite/D1 can PHYSICALLY store, so the diff never
278
+ * reports drift the database could never represent (and thus could never fix).
279
+ *
280
+ * SQLite/D1 has a single text storage class: `json` is stored as TEXT (no native
281
+ * json type), and a `VARCHAR(N)` length is cosmetic — not enforced — so a bounded
282
+ * and an unbounded text column are the same physical column. Both collapse to bare
283
+ * `text`. The tool's own emit round-trips are unaffected (VARCHAR(8) and TEXT both
284
+ * canon to `text`), while a hand-written `TEXT` column now matches maxLength'd /
285
+ * jsonb metadata. Postgres represents both faithfully and is left exact.
286
+ */
287
+ function canonTypeForDialect(t: SqlType, dialect: Dialect | undefined): SqlType {
288
+ if (dialect !== "sqlite" && dialect !== "d1") return t;
289
+ if (t.kind === "json") return { kind: "text" };
290
+ if (t.kind === "text" && t.maxLength !== undefined) return { kind: "text" };
291
+ return t;
292
+ }
293
+
294
+ function sqlTypeEqualsForDialect(a: SqlType, b: SqlType, dialect: Dialect | undefined): boolean {
295
+ return sqlTypeEquals(canonTypeForDialect(a, dialect), canonTypeForDialect(b, dialect));
296
+ }
297
+
275
298
  function diffTableColumns(
276
299
  expected: TableDescriptor,
277
300
  actual: TableDescriptor,
278
301
  changes: Change[],
302
+ dialect?: Dialect,
279
303
  ): void {
280
304
  const table = expected.name;
281
305
  const sx = schemaSpread(expected.schema);
@@ -288,8 +312,11 @@ function diffTableColumns(
288
312
  changes.push({ kind: "add-column", table, ...sx, column: ec, status: ALLOWED });
289
313
  continue;
290
314
  }
291
- // Compare type, nullable, default — emit per-aspect change.
292
- if (!sqlTypeEquals(ec.sqlType, ac.sqlType)) {
315
+ // Compare type, nullable, default — emit per-aspect change. Type equality is
316
+ // dialect-aware: SQLite/D1 cannot physically represent a VARCHAR length or a
317
+ // native json type, so those distinctions must not read as drift (see
318
+ // canonTypeForDialect). Postgres stays exact.
319
+ if (!sqlTypeEqualsForDialect(ec.sqlType, ac.sqlType, dialect)) {
293
320
  changes.push({
294
321
  kind: "change-column-type", table, ...sx, column: name,
295
322
  from: ac.sqlType, to: ec.sqlType, status: ALLOWED,
@@ -441,23 +468,46 @@ function diffTableForeignKeys(
441
468
  }
442
469
  }
443
470
 
444
- function diffTableChecks(expected: TableDescriptor, actual: TableDescriptor, changes: Change[]): void {
471
+ function diffTableChecks(
472
+ expected: TableDescriptor,
473
+ actual: TableDescriptor,
474
+ changes: Change[],
475
+ dialect?: Dialect,
476
+ ): void {
445
477
  const sx = schemaSpread(expected.schema);
446
- const expectedChk = new Map(expected.checks.map((c) => [c.name, c]));
447
- const actualChk = new Map(actual.checks.map((c) => [c.name, c]));
448
- for (const [name, ec] of expectedChk) {
449
- const ac = actualChk.get(name);
450
- if (!ac) {
451
- changes.push({ kind: "add-check", table: expected.name, ...sx, check: ec, status: ALLOWED });
452
- } else if (!checkExprEquals(ec.expression, ac.expression)) {
453
- changes.push({ kind: "drop-check", table: expected.name, ...sx, check: name, restore: ac, status: ALLOWED });
454
- changes.push({ kind: "add-check", table: expected.name, ...sx, check: ec, status: ALLOWED });
478
+ // SQLite/D1 stores no constraint identity for an inline `CHECK ()`, so hand-written
479
+ // DDL yields anonymous (empty-name) checks. When an expected named check has no
480
+ // same-name actual, fall back to matching by NORMALIZED EXPRESSION so an
481
+ // already-enforced constraint is not re-proposed as add-check (and its actual is not
482
+ // re-proposed as drop-check). The fallback scans ALL still-unconsumed actual checks,
483
+ // so it also reconciles a name-MISMATCHED actual (a check the DB named differently
484
+ // than the model's generated `<table>_<col>_chk`), not only truly-anonymous ones —
485
+ // beneficial and safe: the name-keyed pass runs first, so a genuine expression change
486
+ // on a name-matched check is still caught as drop+add. Postgres constraints are always
487
+ // named, so it keeps the exact name-keyed behavior (exprFallback off).
488
+ const exprFallback = dialect === "sqlite" || dialect === "d1";
489
+ const actualByName = new Map(actual.checks.filter((c) => c.name !== "").map((c) => [c.name, c]));
490
+ const consumed = new Set<CheckDescriptor>();
491
+
492
+ for (const ec of expected.checks) {
493
+ const ac = actualByName.get(ec.name);
494
+ if (ac) {
495
+ consumed.add(ac);
496
+ if (!checkExprEquals(ec.expression, ac.expression)) {
497
+ changes.push({ kind: "drop-check", table: expected.name, ...sx, check: ec.name, restore: ac, status: ALLOWED });
498
+ changes.push({ kind: "add-check", table: expected.name, ...sx, check: ec, status: ALLOWED });
499
+ }
500
+ continue;
455
501
  }
456
- }
457
- for (const [name, ac] of actualChk) {
458
- if (!expectedChk.has(name)) {
459
- changes.push({ kind: "drop-check", table: expected.name, ...sx, check: name, restore: ac, status: ALLOWED });
502
+ if (exprFallback) {
503
+ const match = actual.checks.find((a) => !consumed.has(a) && checkExprEquals(ec.expression, a.expression));
504
+ if (match) { consumed.add(match); continue; }
460
505
  }
506
+ changes.push({ kind: "add-check", table: expected.name, ...sx, check: ec, status: ALLOWED });
507
+ }
508
+ for (const ac of actual.checks) {
509
+ if (consumed.has(ac)) continue;
510
+ changes.push({ kind: "drop-check", table: expected.name, ...sx, check: ac.name, restore: ac, status: ALLOWED });
461
511
  }
462
512
  }
463
513
 
@@ -18,6 +18,16 @@ export const SQLITE_EXPR_DEFAULT_PATTERNS = [
18
18
  export function parseSqliteDefault(raw: string | null): ColumnDefault | undefined {
19
19
  if (raw === null || raw === undefined || raw === "") return undefined;
20
20
 
21
+ // A bare (unquoted) NULL keyword is SQL for "no default": `DEFAULT NULL` is
22
+ // functionally identical to declaring no default at all. It reaches us as the
23
+ // JSON string "null" from the D1/wrangler runner (which stringifies a SQL NULL
24
+ // dflt_value) or as `NULL` from parsed DDL. A GENUINE string literal default of
25
+ // "null" is QUOTED (`'null'`) and is matched by the quoted branch below, so this
26
+ // bare test is unambiguous. Without it every no-default column on D1 reads back a
27
+ // literal "null" default that no metadata field ever declares — permanent, and on
28
+ // SQLite/D1 destructive (recreate-and-copy) false drift on every verify/migrate.
29
+ if (raw.trim().toLowerCase() === "null") return undefined;
30
+
21
31
  // A QUOTE-WRAPPED value is a string literal BY CONSTRUCTION — SQLite always quotes a
22
32
  // literal string default. This test MUST come before the expr patterns: one of those
23
33
  // patterns is a bare /\(.*\)/, so a perfectly ordinary literal containing parentheses
@@ -95,9 +105,13 @@ export function sqliteTypeToSqlType(declaredType: string): SqlType {
95
105
  * Without it the actual side always reported `checks: []` and every expected
96
106
  * check re-surfaced as add-check on every single run.
97
107
  *
98
- * Unnamed checks (`CHECK (…)` with no CONSTRAINT clause — hand-written DDL) are
99
- * NOT parsed: they have no identity to match on. A modeled check over such a
100
- * table converges after one recreate (which rewrites it in named form).
108
+ * Unnamed inline checks (`CHECK (…)` with no CONSTRAINT clause — the idiomatic
109
+ * hand-written-migration form) ARE parsed, with an empty name. They have no
110
+ * identity to match by name, so the diff reconciles them by NORMALIZED EXPRESSION
111
+ * on sqlite/d1: an anonymous DB check that already enforces a modeled constraint
112
+ * is matched to the expected named check rather than re-proposed as add-check.
113
+ * (Before, they were skipped entirely, so every modeled check over such a table
114
+ * re-surfaced as false drift on `verify --dialect d1` on every run.)
101
115
  *
102
116
  * The expression is scanned with balanced parens and string-literal awareness
103
117
  * (an enum member may contain `(`/`)`), and returned verbatim — the diff's
@@ -106,10 +120,18 @@ export function sqliteTypeToSqlType(declaredType: string): SqlType {
106
120
  export function parseSqliteChecks(createSql: string | null | undefined): CheckDescriptor[] {
107
121
  if (createSql === null || createSql === undefined || createSql === "") return [];
108
122
  const out: CheckDescriptor[] = [];
109
- const re = /\bCONSTRAINT\s+(?:"((?:[^"]|"")+)"|([A-Za-z_][A-Za-z0-9_$]*))\s+CHECK\s*\(/gi;
123
+ // Find `CHECK (` on a MASKED copy (comments + single-quoted literals blanked to
124
+ // spaces of equal length) so a `CHECK (` appearing inside a `--`/`/* */` comment
125
+ // or a string literal (`DEFAULT 'see CHECK (x)'`) can NEVER be mis-parsed as a
126
+ // constraint. Positions are 1:1, so the balanced expression is sliced from the
127
+ // ORIGINAL (with its real quotes intact).
128
+ const masked = maskCommentsAndStrings(createSql);
129
+ // An optional `CONSTRAINT <name>` prefix then `CHECK (`. Named → group 1/2;
130
+ // bare inline `CHECK (` → name defaults to "" (anonymous, expression-matched).
131
+ const re = /(?:\bCONSTRAINT\s+(?:"((?:[^"]|"")+)"|([A-Za-z_][A-Za-z0-9_$]*))\s+)?\bCHECK\s*\(/gi;
110
132
  let m: RegExpExecArray | null;
111
- while ((m = re.exec(createSql)) !== null) {
112
- const name = m[1] !== undefined ? m[1].replace(/""/g, '"') : m[2]!;
133
+ while ((m = re.exec(masked)) !== null) {
134
+ const name = m[1] !== undefined ? m[1].replace(/""/g, '"') : (m[2] ?? "");
113
135
  const open = re.lastIndex - 1; // position of the "(" the regex just consumed
114
136
  let depth = 0;
115
137
  let inString = false;
@@ -137,6 +159,42 @@ export function parseSqliteChecks(createSql: string | null | undefined): CheckDe
137
159
  return out;
138
160
  }
139
161
 
162
+ /**
163
+ * Same-length copy of a CREATE TABLE DDL with SQL comments (`--` line, `/* *\/`
164
+ * block) and single-quoted string literals blanked to spaces, so a token scan
165
+ * (e.g. the CHECK finder) cannot match inside them. Double-quoted identifiers are
166
+ * PRESERVED — a constraint or column name may be double-quoted, and none legitimately
167
+ * contains a `CHECK (` token. Positions are unchanged for downstream slicing.
168
+ */
169
+ function maskCommentsAndStrings(sql: string): string {
170
+ const chars = sql.split("");
171
+ let i = 0;
172
+ const n = sql.length;
173
+ while (i < n) {
174
+ const ch = sql[i];
175
+ if (ch === "'") {
176
+ const end = skipSingleQuoted(sql, i);
177
+ for (let j = i; j < end; j++) chars[j] = " ";
178
+ i = end;
179
+ } else if (ch === '"') {
180
+ i = skipDoubleQuoted(sql, i); // preserve the identifier verbatim
181
+ } else if (ch === "-" && sql[i + 1] === "-") {
182
+ let j = i;
183
+ while (j < n && sql[j] !== "\n") { chars[j] = " "; j++; }
184
+ i = j;
185
+ } else if (ch === "/" && sql[i + 1] === "*") {
186
+ let j = i + 2;
187
+ while (j < n && !(sql[j] === "*" && sql[j + 1] === "/")) j++;
188
+ const end = Math.min(n, j + 2);
189
+ for (let k = i; k < end; k++) chars[k] = " ";
190
+ i = end;
191
+ } else {
192
+ i++;
193
+ }
194
+ }
195
+ return chars.join("");
196
+ }
197
+
140
198
  /** Skip a single-quoted SQL string starting at `i` (position of the opening
141
199
  * quote); returns the position just past the closing quote ('' escapes honored). */
142
200
  function skipSingleQuoted(s: string, i: number): number {