@metaobjectsdev/migrate-ts 0.15.21-rc.1 → 0.16.0-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.
Files changed (51) hide show
  1. package/dist/diff/index.d.ts.map +1 -1
  2. package/dist/diff/index.js +141 -16
  3. package/dist/diff/index.js.map +1 -1
  4. package/dist/diff/status.js +28 -2
  5. package/dist/diff/status.js.map +1 -1
  6. package/dist/drift/drift.d.ts +2 -2
  7. package/dist/drift/drift.d.ts.map +1 -1
  8. package/dist/emit/postgres.d.ts.map +1 -1
  9. package/dist/emit/postgres.js +94 -4
  10. package/dist/emit/postgres.js.map +1 -1
  11. package/dist/expected-schema.d.ts +19 -2
  12. package/dist/expected-schema.d.ts.map +1 -1
  13. package/dist/expected-schema.js +26 -2
  14. package/dist/expected-schema.js.map +1 -1
  15. package/dist/introspect/postgres.d.ts +15 -1
  16. package/dist/introspect/postgres.d.ts.map +1 -1
  17. package/dist/introspect/postgres.js +132 -11
  18. package/dist/introspect/postgres.js.map +1 -1
  19. package/dist/snapshot/plan.d.ts +4 -3
  20. package/dist/snapshot/plan.d.ts.map +1 -1
  21. package/dist/snapshot/plan.js.map +1 -1
  22. package/dist/snapshot/serialize.d.ts +15 -1
  23. package/dist/snapshot/serialize.d.ts.map +1 -1
  24. package/dist/snapshot/serialize.js +15 -1
  25. package/dist/snapshot/serialize.js.map +1 -1
  26. package/dist/types.d.ts +95 -7
  27. package/dist/types.d.ts.map +1 -1
  28. package/dist/view-column-types.d.ts +40 -0
  29. package/dist/view-column-types.d.ts.map +1 -0
  30. package/dist/view-column-types.js +100 -0
  31. package/dist/view-column-types.js.map +1 -0
  32. package/dist/view-fingerprint.d.ts +40 -0
  33. package/dist/view-fingerprint.d.ts.map +1 -0
  34. package/dist/view-fingerprint.js +88 -0
  35. package/dist/view-fingerprint.js.map +1 -0
  36. package/dist/view-sql-compare.d.ts.map +1 -1
  37. package/dist/view-sql-compare.js +24 -19
  38. package/dist/view-sql-compare.js.map +1 -1
  39. package/package.json +2 -2
  40. package/src/diff/index.ts +151 -19
  41. package/src/diff/status.ts +29 -2
  42. package/src/drift/drift.ts +2 -2
  43. package/src/emit/postgres.ts +102 -4
  44. package/src/expected-schema.ts +44 -3
  45. package/src/introspect/postgres.ts +148 -10
  46. package/src/snapshot/plan.ts +4 -3
  47. package/src/snapshot/serialize.ts +15 -1
  48. package/src/types.ts +109 -9
  49. package/src/view-column-types.ts +110 -0
  50. package/src/view-fingerprint.ts +97 -0
  51. package/src/view-sql-compare.ts +24 -19
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/diff/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EAEQ,UAAU,EAAE,YAAY,EAAE,iBAAiB,EAAE,OAAO,EAC3E,MAAM,aAAa,CAAC;AASrB,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,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,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,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"}
@@ -2,6 +2,7 @@ import { sqlTypeEquals } from "../sql-type.js";
2
2
  import { applyStatus } from "./status.js";
3
3
  import { detectColumnRenames, detectTableRenames } from "./rename-heuristic.js";
4
4
  import { viewSqlEquals } from "../view-sql-compare.js";
5
+ import { viewReplaceIsLegal } from "../view-column-types.js";
5
6
  import { checkExprEquals, normalizeCheckExpr } from "../check-expr-compare.js";
6
7
  import { DEFAULT_DB_SCHEMA_POSTGRES } from "@metaobjectsdev/metadata";
7
8
  const ALLOWED = { state: "allowed" };
@@ -125,16 +126,24 @@ export async function diff(argsOrExpected, actualMaybe, optsMaybe) {
125
126
  if (args.dialect !== undefined)
126
127
  diffTableChecks(expectedTable, actualTable, changes);
127
128
  }
128
- // Pass 2b: views. Identity is (schema, name). A name present on both sides
129
- // with a divergent body (whitespace-/wrapper-normalized) emits replace-view;
130
- // introspect now reads the actual body so view-body drift is visible.
129
+ // Pass 2b: views. Identity is (schema, name). How "changed" is decided is
130
+ // DIALECT-DEPENDENT see diffViews.
131
131
  const expectedViewsInScope = args.expected.views.filter((v) => inScope(v.schema));
132
- diffViews(expectedViewsInScope, args.actual.views.filter((v) => inScope(v.schema)), changes);
132
+ const actualViewsInScope = args.actual.views.filter((v) => inScope(v.schema));
133
+ diffViews(expectedViewsInScope, actualViewsInScope, changes, args.dialect);
133
134
  // Pass 2c: a column-altering change to a table a view reads forces the view to be
134
135
  // dropped before and recreated after — postgres blocks ALTER on a column a view
135
136
  // depends on, and sqlite rebuilds the table via recreate-and-copy. Body-unchanged
136
137
  // dependent views get no change from Pass 2b, so this is where they're picked up.
137
- recreateViewsDependingOnChangedTables(expectedViewsInScope, changes);
138
+ recreateViewsDependingOnChangedTables(expectedViewsInScope, actualViewsInScope, changes);
139
+ // Any drop-view (from Pass 2b or 2c) that would destroy relations we do NOT manage
140
+ // must say so — a plain DROP fails at apply, and a CASCADE destroys them for good.
141
+ //
142
+ // Deliberately fed the UNSCOPED actual views: CASCADE does not respect our schema
143
+ // scoping. A downstream application's view lives in ITS OWN schema — precisely the
144
+ // schema the model never declares, and therefore the one scoping filters out — and
145
+ // that is exactly the object a cascade must not destroy silently.
146
+ annotateViewDropDependents(args.actual.views, changes);
138
147
  // Pass 3: detect table renames BEFORE column renames — so a renamed table's
139
148
  // columns are not scanned as orphaned drop/add pairs.
140
149
  await detectTableRenames(changes, args.onAmbiguous);
@@ -318,27 +327,137 @@ function diffTableChecks(expected, actual, changes) {
318
327
  function viewIdentity(v) {
319
328
  return (v.schema ?? DEFAULT_DB_SCHEMA_POSTGRES) + "." + v.name;
320
329
  }
321
- function diffViews(expected, actual, changes) {
330
+ /**
331
+ * Decide, per view, whether the DB matches the model.
332
+ *
333
+ * TWO comparison strategies, because the engines differ in kind, not degree:
334
+ *
335
+ * - SQLite/D1 store the view's SQL verbatim, so comparing the normalized body is
336
+ * exact. Unchanged behavior.
337
+ *
338
+ * - Postgres stores a PARSE TREE. `pg_get_viewdef()` deparses it into Postgres's own
339
+ * style (`LEFT OUTER JOIN` → `LEFT JOIN`, parenthesized FROM items, lowercased
340
+ * functions, dropped aliases), so the text we wrote can NEVER come back. Comparing
341
+ * it reported a difference every single time — which is exactly why replace-view
342
+ * fired on every migrate, forever, and why `verify --db` was permanently red for
343
+ * any project with a projection. Postgres therefore compares FINGERPRINTS: a hash
344
+ * of the body we generated, stamped into the view's COMMENT at emit time. Both
345
+ * sides of that comparison come from our emitter; the deparser is never consulted.
346
+ *
347
+ * An unknown dialect keeps the old body comparison (legacy positional callers hold
348
+ * hand-built snapshots; changing their semantics silently is worse than leaving them).
349
+ */
350
+ function diffViews(expected, actual, changes, dialect) {
322
351
  const exp = new Map(expected.map((v) => [viewIdentity(v), v]));
323
352
  const act = new Map(actual.map((v) => [viewIdentity(v), v]));
324
353
  for (const [id, v] of exp) {
325
354
  const a = act.get(id);
326
355
  if (a === undefined) {
327
356
  changes.push({ kind: "create-view", view: v, ...schemaSpread(v.schema), status: ALLOWED });
357
+ continue;
328
358
  }
329
- else if (
330
- // Both bodies known and divergentreplace-view. When either body is
331
- // absent (e.g. expected projection unresolvable, or an introspector that
332
- // couldn't read the body) we cannot prove a change, so we leave it alone
333
- // rather than emit a spurious replace.
334
- v.sql !== undefined && a.sql !== undefined && !viewSqlEquals(v.sql, a.sql)) {
335
- changes.push({ kind: "replace-view", view: v, ...schemaSpread(v.schema), status: ALLOWED });
359
+ if (dialect === "postgres") {
360
+ // No expected fingerprint (an unresolvable projection body) we cannot prove a
361
+ // change. Leave it alone rather than propose a spurious replace.
362
+ if (v.fingerprint === undefined)
363
+ continue;
364
+ // The DB view carries no stamp. It is EITHER a view created before fingerprinting
365
+ // existed, OR somebody's hand-written SQL sitting at a projection's name — and on
366
+ // Postgres those are indistinguishable, because the deparser destroyed the text
367
+ // evidence. Overwriting the second destroys work nothing can restore, so fail
368
+ // closed: propose the replace but BLOCK it pending `allow.adoptView`.
369
+ if (a.fingerprint === undefined) {
370
+ changes.push({
371
+ kind: "replace-view", view: v, ...schemaSpread(v.schema),
372
+ restore: a, unmanagedActual: true, status: ALLOWED,
373
+ });
374
+ continue;
375
+ }
376
+ // Stamped and equal → converged. THIS is the line that makes `meta migrate` a
377
+ // no-op on an unchanged schema.
378
+ if (a.fingerprint === v.fingerprint)
379
+ continue;
380
+ // Stamped and different → the view genuinely changed. Prefer a non-destructive
381
+ // CREATE OR REPLACE; fall back to drop+create only when Postgres would refuse it.
382
+ pushViewUpdate(v, a, changes);
383
+ continue;
384
+ }
385
+ // SQLite/D1 (and unknown dialects): verbatim body comparison.
386
+ if (v.sql !== undefined && a.sql !== undefined && !viewSqlEquals(v.sql, a.sql)) {
387
+ changes.push({
388
+ kind: "replace-view", view: v, ...schemaSpread(v.schema), restore: a, status: ALLOWED,
389
+ });
336
390
  }
337
391
  }
338
392
  for (const [id, v] of act) {
339
393
  if (!exp.has(id)) {
340
- changes.push({ kind: "drop-view", view: v.name, ...schemaSpread(v.schema), status: ALLOWED });
394
+ changes.push({
395
+ kind: "drop-view", view: v.name, ...schemaSpread(v.schema), restore: v, status: ALLOWED,
396
+ });
397
+ }
398
+ }
399
+ }
400
+ /**
401
+ * Emit either a non-destructive replace, or the drop+create pair Postgres forces.
402
+ *
403
+ * Replace is strictly better when it is legal: dependent views, grants, and the
404
+ * object's OID all survive. And it IS legal for the common case by construction — a
405
+ * view's columns come out in projection DECLARATION order, so a field APPENDED to a
406
+ * projection lands last, which is exactly what Postgres's prefix rule permits.
407
+ */
408
+ function pushViewUpdate(expected, actual, changes) {
409
+ const sx = schemaSpread(expected.schema);
410
+ if (viewReplaceIsLegal(expected.columns, actual.columns)) {
411
+ changes.push({ kind: "replace-view", view: expected, ...sx, restore: actual, status: ALLOWED });
412
+ return;
413
+ }
414
+ // The column list changed shape (removed / renamed / reordered / retyped), so
415
+ // Postgres refuses OR REPLACE. The view must be dropped and rebuilt — which is
416
+ // destructive to anything depending on it (annotateViewDropDependents makes that loud).
417
+ changes.push({ kind: "drop-view", view: expected.name, ...sx, restore: actual, status: ALLOWED });
418
+ changes.push({ kind: "create-view", view: expected, ...sx, status: ALLOWED });
419
+ }
420
+ /**
421
+ * Attach, to every planned `drop-view`, the relations a CASCADE would destroy.
422
+ *
423
+ * Only EXTERNAL dependents count. A managed view that this same migration drops and
424
+ * recreates is not a loss — it comes back. Everything else is: an unmanaged view, a
425
+ * materialized view, or a managed view not part of this migration. Those belong to
426
+ * someone else, a CASCADE destroys them irrecoverably, and this tool cannot restore
427
+ * what it does not manage.
428
+ *
429
+ * Dependencies are transitive: dropping A cascades to B which cascades to C.
430
+ */
431
+ function annotateViewDropDependents(actual, changes) {
432
+ const byId = new Map(actual.map((v) => [viewIdentity(v), v]));
433
+ // Views this migration drops AND recreates — they survive the migration, so a
434
+ // dependent that is one of them is not destroyed.
435
+ const recreated = new Set(changes
436
+ .filter((c) => c.kind === "create-view")
437
+ .map((c) => viewIdentity(c.view)));
438
+ for (const c of changes) {
439
+ if (c.kind !== "drop-view")
440
+ continue;
441
+ const dropped = viewIdentity({ name: c.view, ...(c.schema !== undefined ? { schema: c.schema } : {}) });
442
+ // Transitive closure over the dependency edges introspection gave us.
443
+ const seen = new Set([dropped]);
444
+ const queue = [dropped];
445
+ const external = [];
446
+ while (queue.length > 0) {
447
+ const cur = queue.shift();
448
+ for (const dep of byId.get(cur)?.dependents ?? []) {
449
+ const depId = viewIdentity(dep);
450
+ if (seen.has(depId))
451
+ continue;
452
+ seen.add(depId);
453
+ queue.push(depId);
454
+ if (dep.managed && recreated.has(depId))
455
+ continue; // comes back — not a loss
456
+ external.push(dep);
457
+ }
341
458
  }
459
+ if (external.length > 0)
460
+ c.dependents = external;
342
461
  }
343
462
  }
344
463
  /** Column-altering change kinds: a view reading the affected column must be recreated. */
@@ -346,7 +465,8 @@ const VIEW_RECREATE_TRIGGERS = new Set([
346
465
  "change-column-type", "change-column-nullable", "change-column-default",
347
466
  "drop-column", "rename-column",
348
467
  ]);
349
- function recreateViewsDependingOnChangedTables(expectedViews, changes) {
468
+ function recreateViewsDependingOnChangedTables(expectedViews, actualViews, changes) {
469
+ const actualById = new Map(actualViews.map((v) => [viewIdentity(v), v]));
350
470
  const alteredTables = new Set();
351
471
  for (const c of changes) {
352
472
  if (VIEW_RECREATE_TRIGGERS.has(c.kind)) {
@@ -373,7 +493,12 @@ function recreateViewsDependingOnChangedTables(expectedViews, changes) {
373
493
  if (c.kind === "replace-view" && viewIdentity(c.view) === id)
374
494
  changes.splice(i, 1);
375
495
  }
376
- changes.push({ kind: "drop-view", view: v.name, ...schemaSpread(v.schema), status: ALLOWED });
496
+ const prior = actualById.get(id);
497
+ changes.push({
498
+ kind: "drop-view", view: v.name, ...schemaSpread(v.schema),
499
+ ...(prior !== undefined ? { restore: prior } : {}),
500
+ status: ALLOWED,
501
+ });
377
502
  changes.push({ kind: "create-view", view: v, ...schemaSpread(v.schema), status: ALLOWED });
378
503
  }
379
504
  }
@@ -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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"}
@@ -50,11 +50,38 @@ function blockedReasonFor(c, allow, recreatedViews) {
50
50
  return allow.dropFk ? null : "destructive: drop-fk not allowed (pass allow.dropFk)";
51
51
  case "drop-check":
52
52
  return allow.dropCheck ? null : "destructive: drop-check not allowed (pass allow.dropCheck)";
53
- case "drop-view":
53
+ case "drop-view": {
54
+ // A drop that would destroy relations we do NOT manage is gated INDEPENDENTLY of
55
+ // whether our own view survives. Even the recreate pair — where our view comes
56
+ // back — cascades through to somebody else's dependent view and destroys it for
57
+ // good, and this tool cannot restore what it does not manage. So check dependents
58
+ // FIRST: it is the one thing `allow.dropView` must never be able to wave through.
59
+ const external = c.dependents ?? [];
60
+ if (external.length > 0 && !allow.dropViewCascade) {
61
+ return `destructive: dropping view "${c.view}" would CASCADE into ${external.length} object(s) `
62
+ + `MetaObjects does not manage and cannot restore `
63
+ + `(${external.map((d) => `${d.schema}.${d.name}`).join(", ")}) `
64
+ + `— pass allow.dropViewCascade to destroy them, or migrate them off this view first`;
65
+ }
54
66
  // Identity, not bare name — see viewIdentity().
55
67
  if (recreatedViews.has(viewIdentity(c.view, c.schema)))
56
68
  return null; // recreate pair — view survives
57
69
  return allow.dropView ? null : "destructive: drop-view not allowed (pass allow.dropView)";
70
+ }
71
+ case "replace-view":
72
+ // The DB view carries no MetaObjects fingerprint, so it is either hand-written or
73
+ // predates fingerprinting — and Postgres deparses view SQL, so the two are
74
+ // indistinguishable. Overwriting a hand-written view destroys SQL no down
75
+ // migration can recover, so fail closed and make the operator say yes.
76
+ //
77
+ // Every environment upgrading from a pre-fingerprint toolchain hits this exactly
78
+ // once, then its views are stamped and it never fires again.
79
+ if (c.unmanagedActual && !allow.adoptView) {
80
+ return `existing view "${c.view.name}" carries no MetaObjects fingerprint — it is hand-written, `
81
+ + `or was created before view fingerprinting. Overwriting it takes ownership and cannot be undone. `
82
+ + `Pass allow.adoptView to adopt it`;
83
+ }
84
+ return null;
58
85
  case "change-column-type":
59
86
  if (isWidening(c.from, c.to))
60
87
  return null; // widening always allowed
@@ -76,7 +103,6 @@ function blockedReasonFor(c, allow, recreatedViews) {
76
103
  case "add-fk":
77
104
  case "add-check":
78
105
  case "create-view":
79
- case "replace-view":
80
106
  return null;
81
107
  }
82
108
  }
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/diff/status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/diff/status.ts"],"names":[],"mappings":"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"}
@@ -23,9 +23,9 @@ export interface ComputeDriftOptions {
23
23
  /**
24
24
  * Expected views (projection → CREATE VIEW body), computed by the caller via
25
25
  * codegen-ts's `buildProjectionViews`. migrate-ts no longer generates view DDL
26
- * itself; pass these so view-body drift is detected. Defaults to none.
26
+ * itself; pass these so view drift is detected. Defaults to none.
27
27
  */
28
- views?: readonly import("../types.js").ViewDescriptor[];
28
+ views?: readonly import("../expected-schema.js").ExpectedViewInput[];
29
29
  }
30
30
  /**
31
31
  * Compute the drift between a live DB and the metadata-declared schema.
@@ -1 +1 @@
1
- {"version":3,"file":"drift.d.ts","sourceRoot":"","sources":["../../src/drift/drift.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAIrE,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAErE,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;;OAIG;IACH,KAAK,CAAC,EAAE,SAAS,OAAO,aAAa,EAAE,cAAc,EAAE,CAAC;CACzD;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAChC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACnC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,IAAI,CAAC,EAAE,mBAAmB,GACzB,OAAO,CAAC,UAAU,CAAC,CAgBrB"}
1
+ {"version":3,"file":"drift.d.ts","sourceRoot":"","sources":["../../src/drift/drift.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAIrE,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAErE,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;;OAIG;IACH,KAAK,CAAC,EAAE,SAAS,OAAO,uBAAuB,EAAE,iBAAiB,EAAE,CAAC;CACtE;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAChC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACnC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,IAAI,CAAC,EAAE,mBAAmB,GACzB,OAAO,CAAC,UAAU,CAAC,CAgBrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../../src/emit/postgres.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EAAE,UAAU,EAEnB,MAAM,aAAa,CAAC;AAoBrB,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,UAAU,CAc5D"}
1
+ {"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../../src/emit/postgres.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EAAE,UAAU,EAEnB,MAAM,aAAa,CAAC;AAsBrB,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,UAAU,CAc5D"}
@@ -1,4 +1,6 @@
1
1
  import { DEFAULT_DB_SCHEMA_POSTGRES } from "@metaobjectsdev/metadata";
2
+ import { renderFingerprintMarker, viewFingerprint } from "../view-fingerprint.js";
3
+ import { viewReplaceIsLegal } from "../view-column-types.js";
2
4
  // Stages run low → high. drop-view + drop-fk run BEFORE drop-table so a view
3
5
  // that depends on a soon-to-be-dropped table is removed first. create-view
4
6
  // runs AFTER add-fk so the view can reference the new schema in full.
@@ -62,7 +64,7 @@ function renderUp(c) {
62
64
  case "add-check": return `ALTER TABLE ${quoteQualified(c.table, c.schema)} ADD CONSTRAINT ${quote(c.check.name)} CHECK (${c.check.expression});`;
63
65
  case "drop-check": return `ALTER TABLE ${quoteQualified(c.table, c.schema)} DROP CONSTRAINT ${quote(c.check)};`;
64
66
  case "create-view": return renderCreateView(c.view, c.schema, /* orReplace */ false);
65
- case "drop-view": return `DROP VIEW ${quoteQualifiedView(c.view, c.schema)};`;
67
+ case "drop-view": return renderDropView(c);
66
68
  case "replace-view": return renderCreateView(c.view, c.schema, /* orReplace */ true);
67
69
  }
68
70
  }
@@ -120,8 +122,9 @@ function renderDown(c) {
120
122
  ? `ALTER TABLE ${quoteQualified(c.table, c.schema)} ADD CONSTRAINT ${quote(c.restore.name)} CHECK (${c.restore.expression});`
121
123
  : `-- WARNING: down migration cannot restore the original CHECK definition`;
122
124
  case "create-view": return `DROP VIEW ${quoteQualifiedView(c.view.name, c.schema)};`;
123
- case "drop-view": return `-- WARNING: down migration cannot restore the original view definition`;
124
- case "replace-view": return `-- WARNING: down migration cannot restore the original view definition`;
125
+ // The deparsed body introspection captured IS a valid restore payload.
126
+ case "drop-view": return renderRestoreView(c.restore, c.view, c.schema);
127
+ case "replace-view": return renderRestoreView(c.restore, c.view.name, c.schema, c.view);
125
128
  }
126
129
  }
127
130
  function renderCreateTable(t) {
@@ -265,11 +268,98 @@ function quoteIndexQualified(index, schema) {
265
268
  function quoteQualifiedView(view, schema) {
266
269
  return quoteQualified(view, schema);
267
270
  }
271
+ /**
272
+ * Emit the view AND stamp it with the fingerprint of the body we just wrote.
273
+ *
274
+ * The stamp is not decoration — it is the ONLY way a later migrate can tell whether
275
+ * this view is up to date. Postgres does not store view SQL (it deparses it from the
276
+ * parse tree), so the text can never be read back and compared; the fingerprint in the
277
+ * view's COMMENT can. Drop the stamp and every migrate re-proposes every view forever.
278
+ *
279
+ * `CREATE OR REPLACE VIEW` does NOT clear an existing comment, so re-stamping on every
280
+ * replace is both required (the body changed → the hash changed) and sufficient.
281
+ */
268
282
  function renderCreateView(v, schema, orReplace) {
269
283
  if (v.sql === undefined || v.sql.trim().length === 0) {
270
284
  throw new Error(`view "${v.name}" has no sql body — buildExpectedSchema must populate it before emit`);
271
285
  }
272
286
  const prefix = orReplace ? "CREATE OR REPLACE VIEW" : "CREATE VIEW";
273
- return `${prefix} ${quoteQualifiedView(v.name, schema)} AS\n${v.sql};`;
287
+ const qualified = quoteQualifiedView(v.name, schema);
288
+ const create = `${prefix} ${qualified} AS\n${v.sql};`;
289
+ const fingerprint = v.fingerprint ?? viewFingerprint(v.sql);
290
+ return `${create}\n${renderViewComment(qualified, renderFingerprintMarker(fingerprint))}`;
291
+ }
292
+ function renderViewComment(qualifiedView, comment) {
293
+ if (comment === null)
294
+ return `COMMENT ON VIEW ${qualifiedView} IS NULL;`;
295
+ return `COMMENT ON VIEW ${qualifiedView} IS '${comment.replace(/'/g, "''")}';`;
296
+ }
297
+ /**
298
+ * DROP VIEW, plus — when the drop would cascade into relations we do not manage — a
299
+ * banner naming every one of them.
300
+ *
301
+ * The banner lives in the emitted SQL rather than only in CLI output on purpose: the
302
+ * migration file is committed and code-reviewed, and "this statement destroys three
303
+ * objects belonging to another application" is exactly the thing a reviewer must see.
304
+ *
305
+ * CASCADE is emitted ONLY when explicitly allowed. Otherwise a plain DROP VIEW is
306
+ * emitted even if dependents are known — so if a dependent appeared between introspect
307
+ * and apply, Postgres itself refuses the drop rather than silently destroying it.
308
+ */
309
+ function renderDropView(c) {
310
+ const qualified = quoteQualifiedView(c.view, c.schema);
311
+ const dependents = c.dependents ?? [];
312
+ if (dependents.length === 0)
313
+ return `DROP VIEW ${qualified};`;
314
+ const listed = dependents
315
+ .map((d) => `-- ${d.schema}.${d.name} (${d.relkind === "m" ? "materialized view" : "view"})`)
316
+ .join("\n");
317
+ const rule = "-- " + "=".repeat(74);
318
+ return [
319
+ rule,
320
+ "-- WARNING: CASCADE DROP. The following dependent objects are DESTROYED by this",
321
+ "-- statement. MetaObjects does not manage them and the down migration does NOT",
322
+ "-- restore them:",
323
+ listed,
324
+ rule,
325
+ `DROP VIEW ${qualified} CASCADE;`,
326
+ ].join("\n");
327
+ }
328
+ /**
329
+ * Restore a view the up migration dropped or replaced.
330
+ *
331
+ * The payload is Postgres's own deparsed body (`pg_get_viewdef`) — useless for
332
+ * COMPARISON, but perfectly valid SQL that reproduces the view. So the thing that made
333
+ * the bug (the deparser) is what makes down migrations restorable. The prior stamp is
334
+ * replayed verbatim: the restored parse tree IS the pre-migration view, so its old
335
+ * fingerprint is still the truthful one.
336
+ */
337
+ function renderRestoreView(restore, name, schema,
338
+ /** The view the UP migration left in place — i.e. what the down is replacing. */
339
+ current) {
340
+ if (restore?.sql === undefined || restore.sql.trim().length === 0) {
341
+ return `-- WARNING: down migration cannot restore the original view definition`;
342
+ }
343
+ const qualified = quoteQualifiedView(name, schema);
344
+ const body = restore.sql.trim().replace(/;\s*$/, "");
345
+ // Postgres's OR-REPLACE prefix rule applies to the down migration too, and usually
346
+ // REFUSES: undoing an appended field means REMOVING a view column, and
347
+ // `CREATE OR REPLACE VIEW` cannot drop columns ("cannot drop columns from view").
348
+ // So ask the same question the forward path asks, with the arguments swapped — and
349
+ // fall back to DROP + CREATE when the answer is no.
350
+ //
351
+ // The fallback DROP is deliberately NOT `CASCADE`: if a dependent has since been built
352
+ // on the newer shape, Postgres refuses the down migration rather than silently
353
+ // destroying that dependent. Loud beats convenient.
354
+ const stamp = restore.fingerprint !== undefined
355
+ ? renderViewComment(qualified, renderFingerprintMarker(restore.fingerprint))
356
+ // The view being restored carried NO fingerprint (hand-written, or pre-stamping).
357
+ // Clear ours — otherwise the restored view would advertise a stamp for a body it
358
+ // does not have, and the next migrate would believe the stamp and skip it.
359
+ : renderViewComment(qualified, null);
360
+ if (current !== undefined && !viewReplaceIsLegal(restore.columns, current.columns)) {
361
+ return `DROP VIEW ${qualified};\nCREATE VIEW ${qualified} AS\n${body};\n${stamp}`;
362
+ }
363
+ return `CREATE OR REPLACE VIEW ${qualified} AS\n${body};\n${stamp}`;
274
364
  }
275
365
  //# sourceMappingURL=postgres.js.map
@@ -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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"}