@metaobjectsdev/migrate-ts 0.11.4 → 0.11.5-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 (67) hide show
  1. package/dist/diff/index.js +43 -1
  2. package/dist/diff/index.js.map +1 -1
  3. package/dist/drift/drift.d.ts +6 -0
  4. package/dist/drift/drift.d.ts.map +1 -1
  5. package/dist/drift/drift.js +1 -0
  6. package/dist/drift/drift.js.map +1 -1
  7. package/dist/emit/index.d.ts.map +1 -1
  8. package/dist/emit/index.js +0 -9
  9. package/dist/emit/index.js.map +1 -1
  10. package/dist/emit/sqlite.d.ts.map +1 -1
  11. package/dist/emit/sqlite.js +21 -9
  12. package/dist/emit/sqlite.js.map +1 -1
  13. package/dist/expected-schema.d.ts +9 -1
  14. package/dist/expected-schema.d.ts.map +1 -1
  15. package/dist/expected-schema.js +4 -5
  16. package/dist/expected-schema.js.map +1 -1
  17. package/dist/index.d.ts +0 -5
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +4 -6
  20. package/dist/index.js.map +1 -1
  21. package/dist/introspect/d1.js +10 -2
  22. package/dist/introspect/d1.js.map +1 -1
  23. package/dist/snapshot/plan.d.ts +4 -2
  24. package/dist/snapshot/plan.d.ts.map +1 -1
  25. package/dist/snapshot/plan.js +3 -1
  26. package/dist/snapshot/plan.js.map +1 -1
  27. package/dist/types.d.ts +8 -0
  28. package/dist/types.d.ts.map +1 -1
  29. package/dist/view-sql-compare.d.ts.map +1 -1
  30. package/dist/view-sql-compare.js +5 -7
  31. package/dist/view-sql-compare.js.map +1 -1
  32. package/package.json +2 -2
  33. package/src/diff/index.ts +47 -1
  34. package/src/drift/drift.ts +7 -0
  35. package/src/emit/index.ts +3 -13
  36. package/src/emit/sqlite.ts +23 -10
  37. package/src/expected-schema.ts +13 -6
  38. package/src/index.ts +4 -13
  39. package/src/introspect/d1.ts +9 -2
  40. package/src/snapshot/plan.ts +6 -1
  41. package/src/types.ts +8 -0
  42. package/src/view-sql-compare.ts +5 -7
  43. package/dist/expected-views.d.ts +0 -5
  44. package/dist/expected-views.d.ts.map +0 -1
  45. package/dist/expected-views.js +0 -169
  46. package/dist/expected-views.js.map +0 -1
  47. package/dist/source-aware-diff.d.ts +0 -20
  48. package/dist/source-aware-diff.d.ts.map +0 -1
  49. package/dist/source-aware-diff.js +0 -24
  50. package/dist/source-aware-diff.js.map +0 -1
  51. package/dist/view-ddl-postgres.d.ts +0 -4
  52. package/dist/view-ddl-postgres.d.ts.map +0 -1
  53. package/dist/view-ddl-postgres.js +0 -13
  54. package/dist/view-ddl-postgres.js.map +0 -1
  55. package/dist/view-ddl-sqlite.d.ts +0 -3
  56. package/dist/view-ddl-sqlite.d.ts.map +0 -1
  57. package/dist/view-ddl-sqlite.js +0 -7
  58. package/dist/view-ddl-sqlite.js.map +0 -1
  59. package/dist/view-diff.d.ts +0 -13
  60. package/dist/view-diff.d.ts.map +0 -1
  61. package/dist/view-diff.js +0 -42
  62. package/dist/view-diff.js.map +0 -1
  63. package/src/expected-views.ts +0 -195
  64. package/src/source-aware-diff.ts +0 -49
  65. package/src/view-ddl-postgres.ts +0 -15
  66. package/src/view-ddl-sqlite.ts +0 -7
  67. package/src/view-diff.ts +0 -55
@@ -1 +1 @@
1
- {"version":3,"file":"d1.js","sourceRoot":"","sources":["../../src/introspect/d1.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"d1.js","sourceRoot":"","sources":["../../src/introspect/d1.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,14 @@
1
1
  import type { ColumnNamingStrategy, MetaData } from "@metaobjectsdev/metadata";
2
2
  import { type DiffArgs } from "../diff/index.js";
3
- import type { Dialect, DiffResult, SchemaSnapshot } from "../types.js";
3
+ import type { Dialect, DiffResult, SchemaSnapshot, ViewDescriptor } from "../types.js";
4
4
  export interface PlanOfflineArgs extends Pick<DiffArgs, "allow" | "onAmbiguous" | "ignoreTables"> {
5
5
  metadata: MetaData;
6
6
  dialect: Dialect;
7
7
  /** The stored reference snapshot (the "from" side). Use `{ tables: [], views: [] }` for a fresh project. */
8
8
  snapshot: SchemaSnapshot;
9
9
  columnNamingStrategy?: ColumnNamingStrategy;
10
+ /** Expected views (via codegen-ts `buildProjectionViews`) — threaded into buildExpectedSchema. */
11
+ views?: readonly ViewDescriptor[];
10
12
  }
11
13
  export interface PlanOfflineResult {
12
14
  /** The change set to emit, from diffing metadata-expected against the snapshot. */
@@ -21,5 +23,5 @@ export interface PlanOfflineResult {
21
23
  */
22
24
  export declare function planOffline(args: PlanOfflineArgs): Promise<PlanOfflineResult>;
23
25
  /** Seed an initial reference snapshot from metadata (greenfield baseline). */
24
- export declare function baselineFromMetadata(metadata: MetaData, dialect: Dialect, columnNamingStrategy?: ColumnNamingStrategy): SchemaSnapshot;
26
+ export declare function baselineFromMetadata(metadata: MetaData, dialect: Dialect, columnNamingStrategy?: ColumnNamingStrategy, views?: readonly ViewDescriptor[]): SchemaSnapshot;
25
27
  //# sourceMappingURL=plan.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/snapshot/plan.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAE/E,OAAO,EAAQ,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEvE,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,QAAQ,EAAE,OAAO,GAAG,aAAa,GAAG,cAAc,CAAC;IAC/F,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,4GAA4G;IAC5G,QAAQ,EAAE,cAAc,CAAC;IACzB,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;CAC7C;AAED,MAAM,WAAW,iBAAiB;IAChC,mFAAmF;IACnF,IAAI,EAAE,UAAU,CAAC;IACjB,6FAA6F;IAC7F,YAAY,EAAE,cAAc,CAAC;CAC9B;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAcnF;AAED,8EAA8E;AAC9E,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,EAChB,oBAAoB,CAAC,EAAE,oBAAoB,GAC1C,cAAc,CAKhB"}
1
+ {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/snapshot/plan.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAE/E,OAAO,EAAQ,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEvF,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,QAAQ,EAAE,OAAO,GAAG,aAAa,GAAG,cAAc,CAAC;IAC/F,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,4GAA4G;IAC5G,QAAQ,EAAE,cAAc,CAAC;IACzB,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,kGAAkG;IAClG,KAAK,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,iBAAiB;IAChC,mFAAmF;IACnF,IAAI,EAAE,UAAU,CAAC;IACjB,6FAA6F;IAC7F,YAAY,EAAE,cAAc,CAAC;CAC9B;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAenF;AAED,8EAA8E;AAC9E,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,EAChB,oBAAoB,CAAC,EAAE,oBAAoB,EAC3C,KAAK,CAAC,EAAE,SAAS,cAAc,EAAE,GAChC,cAAc,CAMhB"}
@@ -9,6 +9,7 @@ export async function planOffline(args) {
9
9
  const nextSnapshot = buildExpectedSchema(args.metadata, {
10
10
  dialect: args.dialect,
11
11
  ...(args.columnNamingStrategy ? { columnNamingStrategy: args.columnNamingStrategy } : {}),
12
+ ...(args.views !== undefined ? { views: args.views } : {}),
12
13
  });
13
14
  const result = await diff({
14
15
  expected: nextSnapshot,
@@ -21,10 +22,11 @@ export async function planOffline(args) {
21
22
  return { diff: result, nextSnapshot };
22
23
  }
23
24
  /** Seed an initial reference snapshot from metadata (greenfield baseline). */
24
- export function baselineFromMetadata(metadata, dialect, columnNamingStrategy) {
25
+ export function baselineFromMetadata(metadata, dialect, columnNamingStrategy, views) {
25
26
  return buildExpectedSchema(metadata, {
26
27
  dialect,
27
28
  ...(columnNamingStrategy ? { columnNamingStrategy } : {}),
29
+ ...(views !== undefined ? { views } : {}),
28
30
  });
29
31
  }
30
32
  //# sourceMappingURL=plan.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/snapshot/plan.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAiB,MAAM,kBAAkB,CAAC;AAkBvD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAqB;IACrD,MAAM,YAAY,GAAG,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE;QACtD,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1F,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC;QACxB,QAAQ,EAAE,YAAY;QACtB,MAAM,EAAE,IAAI,CAAC,QAAQ;QACrB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5C,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAClE,CAAC,CAAC;IACH,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;AACxC,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,oBAAoB,CAClC,QAAkB,EAClB,OAAgB,EAChB,oBAA2C;IAE3C,OAAO,mBAAmB,CAAC,QAAQ,EAAE;QACnC,OAAO;QACP,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1D,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/snapshot/plan.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAiB,MAAM,kBAAkB,CAAC;AAoBvD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAqB;IACrD,MAAM,YAAY,GAAG,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE;QACtD,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzF,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3D,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC;QACxB,QAAQ,EAAE,YAAY;QACtB,MAAM,EAAE,IAAI,CAAC,QAAQ;QACrB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5C,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAClE,CAAC,CAAC;IACH,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;AACxC,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,oBAAoB,CAClC,QAAkB,EAClB,OAAgB,EAChB,oBAA2C,EAC3C,KAAiC;IAEjC,OAAO,mBAAmB,CAAC,QAAQ,EAAE;QACnC,OAAO;QACP,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1C,CAAC,CAAC;AACL,CAAC"}
package/dist/types.d.ts CHANGED
@@ -114,6 +114,14 @@ export interface ViewDescriptor {
114
114
  * body change triggers a `replace-view`.
115
115
  */
116
116
  sql?: string;
117
+ /**
118
+ * Physical tables this view reads (base + joined tables). Populated on the
119
+ * EXPECTED side only (the view producer knows the join graph; introspection
120
+ * does not resolve it). The diff uses it to drop + recreate the view around a
121
+ * column-altering change to one of its source tables — postgres blocks ALTER on
122
+ * a column a view depends on, and sqlite's recreate-and-copy rebuilds the table.
123
+ */
124
+ dependsOn?: readonly string[];
117
125
  }
118
126
  /**
119
127
  * Every variant with a `table: string` (or `table: TableDescriptor`) field also
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAO7C,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,8EAA8E;IAC9E,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB;;;OAGG;IACH,IAAI,CAAC,EAAE,YAAY,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,WAAW,EAAE,YAAY,EAAE,CAAC;IAC5B,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,QAAQ,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IAChC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,SAAS,GAAG,MAAM,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC;IAC5B;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,CAAC;AAEzE,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;;;;;;;OAYG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/B;AAMD;;;;;;;;;;GAUG;AACH,MAAM,MAAM,MAAM,GACd;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,eAAe,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GACvF;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,eAAe,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GACvG;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GACzF;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,gBAAgB,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GACtG;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GACzH;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GACzG;IAAE,IAAI,EAAE,oBAAoB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAC3E,IAAI,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GACpD;IAAE,IAAI,EAAE,wBAAwB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAC/E,IAAI,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GACpD;IAAE,IAAI,EAAE,uBAAuB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAC9E,IAAI,CAAC,EAAE,aAAa,CAAC;IAAC,EAAE,CAAC,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GAClE;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,eAAe,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GACnG;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,eAAe,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GACtH;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GAC1F;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GAC7G;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,eAAe,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GACnG;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,eAAe,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GAEtH;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,cAAc,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GACpF;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GAC1E;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE,cAAc,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,CAAC;AAE1F,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAExC,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAMD,MAAM,WAAW,YAAY;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,mFAAmF;IACnF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oEAAoE;IACpE,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,MAAM,eAAe,GACvB;IACE,IAAI,EAAE,wBAAwB,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IACzC,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;CACxC,GACD;IACE,IAAI,EAAE,uBAAuB,CAAC;IAC9B,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEN,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;AAElE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,EAAE,eAAe,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAErF,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,iGAAiG;IACjG,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAMD,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;OAMG;IACH,eAAe,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACtC;AAED,MAAM,MAAM,OAAO,GAAG,UAAU,GAAG,QAAQ,GAAG,IAAI,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"view-sql-compare.d.ts","sourceRoot":"","sources":["../src/view-sql-compare.ts"],"names":[],"mappings":"AA4BA;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAOpD;AAED,yEAAyE;AACzE,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAGnF"}
1
+ {"version":3,"file":"view-sql-compare.d.ts","sourceRoot":"","sources":["../src/view-sql-compare.ts"],"names":[],"mappings":"AA0BA;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAOpD;AAED,yEAAyE;AACzE,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAGnF"}
@@ -1,15 +1,13 @@
1
1
  // view-sql-compare.ts — the single shared comparator for view definition SQL.
2
2
  //
3
3
  // View definition SQL arrives in two shapes across the pipeline:
4
- // - EXPECTED (buildExpectedViews): the body only — `SELECT ... FROM ...`.
5
- // - ACTUAL (introspect): sqlite's sqlite_master.sql is the full
4
+ // - EXPECTED (buildProjectionViews): the body only — `SELECT ... FROM ...`.
5
+ // - ACTUAL (introspect): sqlite's/D1's sqlite_master.sql is the full
6
6
  // `CREATE VIEW <name> AS <body>`; Postgres' view_definition is body-only.
7
- // - The CLI's readExistingViewSql synthesizes `CREATE VIEW <name> AS <body>`
8
- // for Postgres so it matches what emitViewDdl produces.
9
7
  //
10
- // normalizeViewSql reduces any of these to a comparable canonical form so the
11
- // diff (expected vs introspected) and the CLI (emitted DDL vs existing DDL) use
12
- // ONE comparison. It strips a leading `CREATE [OR REPLACE] VIEW <name> AS`,
8
+ // normalizeViewSql reduces either of these to a comparable canonical form so the
9
+ // diff (expected vs introspected) uses ONE comparison. It strips a leading
10
+ // `CREATE [OR REPLACE] VIEW <name> AS`,
13
11
  // collapses runs of whitespace to a single space, drops a trailing `;`, and
14
12
  // lower-cases — view-body drift should be classified by structure, not by
15
13
  // incidental whitespace/case/wrapper differences.
@@ -1 +1 @@
1
- {"version":3,"file":"view-sql-compare.js","sourceRoot":"","sources":["../src/view-sql-compare.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,EAAE;AACF,iEAAiE;AACjE,4EAA4E;AAC5E,kEAAkE;AAClE,8EAA8E;AAC9E,+EAA+E;AAC/E,4DAA4D;AAC5D,EAAE;AACF,8EAA8E;AAC9E,gFAAgF;AAChF,4EAA4E;AAC5E,4EAA4E;AAC5E,0EAA0E;AAC1E,kDAAkD;AAClD,EAAE;AACF,+EAA+E;AAC/E,iFAAiF;AACjF,8EAA8E;AAC9E,wEAAwE;AACxE,4EAA4E;AAC5E,4EAA4E;AAC5E,4EAA4E;AAC5E,8EAA8E;AAE9E,MAAM,kBAAkB,GACtB,0HAA0H,CAAC;AAE7H;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,OAAO,GAAG;SACP,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;SAC/B,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;SACpB,IAAI,EAAE;SACN,WAAW,EAAE,CAAC;AACnB,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,aAAa,CAAC,CAAqB,EAAE,CAAqB;IACxE,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACrD,OAAO,gBAAgB,CAAC,CAAC,CAAC,KAAK,gBAAgB,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC"}
1
+ {"version":3,"file":"view-sql-compare.js","sourceRoot":"","sources":["../src/view-sql-compare.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,EAAE;AACF,iEAAiE;AACjE,8EAA8E;AAC9E,uEAAuE;AACvE,8EAA8E;AAC9E,EAAE;AACF,iFAAiF;AACjF,2EAA2E;AAC3E,wCAAwC;AACxC,4EAA4E;AAC5E,0EAA0E;AAC1E,kDAAkD;AAClD,EAAE;AACF,+EAA+E;AAC/E,iFAAiF;AACjF,8EAA8E;AAC9E,wEAAwE;AACxE,4EAA4E;AAC5E,4EAA4E;AAC5E,4EAA4E;AAC5E,8EAA8E;AAE9E,MAAM,kBAAkB,GACtB,0HAA0H,CAAC;AAE7H;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,OAAO,GAAG;SACP,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;SAC/B,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;SACpB,IAAI,EAAE;SACN,WAAW,EAAE,CAAC;AACnB,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,aAAa,CAAC,CAAqB,EAAE,CAAqB;IACxE,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACrD,OAAO,gBAAgB,CAAC,CAAC,CAAC,KAAK,gBAAgB,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metaobjectsdev/migrate-ts",
3
- "version": "0.11.4",
3
+ "version": "0.11.5-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.11.4"
48
+ "@metaobjectsdev/metadata": "0.11.5-rc.1"
49
49
  },
50
50
  "peerDependencies": {
51
51
  "kysely": ">=0.27.0"
package/src/diff/index.ts CHANGED
@@ -202,12 +202,19 @@ export async function diff(
202
202
  // Pass 2b: views. Identity is (schema, name). A name present on both sides
203
203
  // with a divergent body (whitespace-/wrapper-normalized) emits replace-view;
204
204
  // introspect now reads the actual body so view-body drift is visible.
205
+ const expectedViewsInScope = args.expected.views.filter((v) => inScope(v.schema));
205
206
  diffViews(
206
- args.expected.views.filter((v) => inScope(v.schema)),
207
+ expectedViewsInScope,
207
208
  args.actual.views.filter((v) => inScope(v.schema)),
208
209
  changes,
209
210
  );
210
211
 
212
+ // Pass 2c: a column-altering change to a table a view reads forces the view to be
213
+ // dropped before and recreated after — postgres blocks ALTER on a column a view
214
+ // depends on, and sqlite rebuilds the table via recreate-and-copy. Body-unchanged
215
+ // dependent views get no change from Pass 2b, so this is where they're picked up.
216
+ recreateViewsDependingOnChangedTables(expectedViewsInScope, changes);
217
+
211
218
  // Pass 3: detect table renames BEFORE column renames — so a renamed table's
212
219
  // columns are not scanned as orphaned drop/add pairs.
213
220
  await detectTableRenames(changes, args.onAmbiguous);
@@ -384,6 +391,45 @@ function diffViews(
384
391
  }
385
392
  }
386
393
 
394
+ /** Column-altering change kinds: a view reading the affected column must be recreated. */
395
+ const VIEW_RECREATE_TRIGGERS = new Set<Change["kind"]>([
396
+ "change-column-type", "change-column-nullable", "change-column-default",
397
+ "drop-column", "rename-column",
398
+ ]);
399
+
400
+ function recreateViewsDependingOnChangedTables(
401
+ expectedViews: ViewDescriptor[],
402
+ changes: Change[],
403
+ ): void {
404
+ const alteredTables = new Set<string>();
405
+ for (const c of changes) {
406
+ if (VIEW_RECREATE_TRIGGERS.has(c.kind)) {
407
+ const t = (c as { table?: string }).table;
408
+ if (typeof t === "string") alteredTables.add(t);
409
+ }
410
+ }
411
+ if (alteredTables.size === 0) return;
412
+
413
+ for (const v of expectedViews) {
414
+ if (!(v.dependsOn ?? []).some((t) => alteredTables.has(t))) continue;
415
+ const id = viewIdentity(v);
416
+
417
+ // Brand-new view (create-view already queued): the DB has no prior view to
418
+ // block the ALTER, and the queued create-view already builds it post-change.
419
+ if (changes.some((c) => c.kind === "create-view" && viewIdentity(c.view) === id)) continue;
420
+
421
+ // Supersede any replace-view (CREATE OR REPLACE can't run mid-ALTER) with an
422
+ // explicit drop(before)/create(after) pair — the emit STAGE_ORDER sequences
423
+ // drop-view ahead of the column change and create-view after it.
424
+ for (let i = changes.length - 1; i >= 0; i--) {
425
+ const c = changes[i]!;
426
+ if (c.kind === "replace-view" && viewIdentity(c.view) === id) changes.splice(i, 1);
427
+ }
428
+ changes.push({ kind: "drop-view", view: v.name, ...schemaSpread(v.schema), status: ALLOWED });
429
+ changes.push({ kind: "create-view", view: v, ...schemaSpread(v.schema), status: ALLOWED });
430
+ }
431
+ }
432
+
387
433
  function columnDefaultsEqual(a: ColumnDescriptor["default"], b: ColumnDescriptor["default"]): boolean {
388
434
  if (a === undefined && b === undefined) return true;
389
435
  if (a === undefined || b === undefined) return false;
@@ -34,6 +34,12 @@ export interface ComputeDriftOptions {
34
34
  * Omit to keep `diff`'s default (migration-tracking sidecar tables).
35
35
  */
36
36
  ignoreTables?: string[];
37
+ /**
38
+ * Expected views (projection → CREATE VIEW body), computed by the caller via
39
+ * codegen-ts's `buildProjectionViews`. migrate-ts no longer generates view DDL
40
+ * itself; pass these so view-body drift is detected. Defaults to none.
41
+ */
42
+ views?: readonly import("../types.js").ViewDescriptor[];
37
43
  }
38
44
 
39
45
  /**
@@ -54,6 +60,7 @@ export async function computeDrift(
54
60
  ...(opts?.columnNamingStrategy !== undefined
55
61
  ? { columnNamingStrategy: opts.columnNamingStrategy }
56
62
  : {}),
63
+ ...(opts?.views !== undefined ? { views: opts.views } : {}),
57
64
  });
58
65
  const actual = await introspect(db, dialect);
59
66
  return diff({
package/src/emit/index.ts CHANGED
@@ -3,6 +3,9 @@ import { BlockedChangesError } from "../errors.js";
3
3
  import { renderPostgres } from "./postgres.js";
4
4
  import { renderSqlite } from "./sqlite.js";
5
5
  import { renderD1 } from "./d1.js";
6
+ // View DDL is rendered by every dialect renderer (see their create/drop/replace-view
7
+ // cases): postgres uses CREATE [OR REPLACE] VIEW with schema namespacing; sqlite/d1
8
+ // use DROP+CREATE (no CREATE OR REPLACE, no schema). There is no dialect gate here.
6
9
 
7
10
  export interface EmitOptions {
8
11
  dialect: Dialect;
@@ -19,23 +22,10 @@ export interface EmitOptions {
19
22
  actualMeta?: SnapshotMeta;
20
23
  }
21
24
 
22
- const VIEW_KINDS = new Set<Change["kind"]>(["create-view", "drop-view", "replace-view"]);
23
-
24
25
  export function emit(changes: Change[], opts: EmitOptions): EmitResult {
25
26
  const blocked = changes.filter((c) => c.status.state === "blocked");
26
27
  if (blocked.length > 0) throw new BlockedChangesError(blocked);
27
28
 
28
- // Views are postgres-only for now (sqlite/d1 DDL renderers don't handle them).
29
- if (opts.dialect !== "postgres") {
30
- const viewChanges = changes.filter((c) => VIEW_KINDS.has(c.kind));
31
- if (viewChanges.length > 0) {
32
- throw new Error(
33
- `view migration not implemented for dialect "${opts.dialect}" ` +
34
- `(${viewChanges.length} view-targeting change(s); postgres-only today)`,
35
- );
36
- }
37
- }
38
-
39
29
  switch (opts.dialect) {
40
30
  case "postgres": return renderPostgres(changes);
41
31
  case "sqlite": return renderSqlite(changes, opts.expectedSchema, opts.actualMeta);
@@ -1,12 +1,17 @@
1
1
  import type {
2
2
  Change, EmitResult, ColumnDescriptor, IndexDescriptor,
3
- TableDescriptor, SchemaSnapshot, SnapshotMeta, ColumnDefault,
3
+ TableDescriptor, SchemaSnapshot, SnapshotMeta, ColumnDefault, ViewDescriptor,
4
4
  } from "../types.js";
5
5
  import type { SqlType } from "../sql-type.js";
6
6
 
7
7
  // Stage ordering similar to PG; recreate-and-copy bundles get inserted
8
8
  // at their first triggering change's position in Task 23.
9
9
  const STAGE_ORDER: Record<Change["kind"], number> = {
10
+ // drop-view runs FIRST (mirrors postgres): a view that depends on a table about
11
+ // to be recreated-and-copied must be dropped before the DROP TABLE / RENAME, or
12
+ // SQLite's rename re-parses the dependent view and can error mid-recreate. The
13
+ // diff's Pass 2c injects exactly this drop(before)/create(after) pair.
14
+ "drop-view": 0,
10
15
  "create-table": 1,
11
16
  "add-column": 2, "drop-column": 2,
12
17
  "change-column-type": 2, "change-column-nullable": 2, "change-column-default": 2,
@@ -15,7 +20,8 @@ const STAGE_ORDER: Record<Change["kind"], number> = {
15
20
  "add-fk": 5, "drop-fk": 5,
16
21
  "add-check": 5, "drop-check": 5,
17
22
  "drop-table": 6,
18
- "create-view": 99, "drop-view": 99, "replace-view": 99,
23
+ // create-view / replace-view run LAST — after every table change the view reads.
24
+ "create-view": 99, "replace-view": 99,
19
25
  };
20
26
 
21
27
  const RECREATE_TRIGGERING_KINDS = new Set<Change["kind"]>([
@@ -204,13 +210,21 @@ function renderUpNative(c: Change): string {
204
210
  case "drop-fk":
205
211
  // These are handled by renderRecreate before reaching renderUpNative.
206
212
  throw new Error(`renderUpNative: ${c.kind} should have been handled by recreate bundler`);
207
- case "create-view":
208
- case "drop-view":
209
- case "replace-view":
210
- throw new Error(`unexpected view-kind in renderSqlite: ${c.kind}`);
213
+ // SQLite has no schema namespacing for views and no CREATE OR REPLACE VIEW;
214
+ // a replace is DROP + CREATE. The view body lives in ViewDescriptor.sql.
215
+ case "create-view": return renderCreateView(c.view);
216
+ case "drop-view": return `DROP VIEW IF EXISTS ${quote(c.view)};`;
217
+ case "replace-view": return `DROP VIEW IF EXISTS ${quote(c.view.name)};\n${renderCreateView(c.view)}`;
211
218
  }
212
219
  }
213
220
 
221
+ function renderCreateView(v: ViewDescriptor): string {
222
+ if (v.sql === undefined || v.sql.trim().length === 0) {
223
+ throw new Error(`view "${v.name}" has no sql body — buildExpectedSchema must populate it before emit`);
224
+ }
225
+ return `CREATE VIEW ${quote(v.name)} AS\n${v.sql};`;
226
+ }
227
+
214
228
  function renderDownNative(c: Change): string {
215
229
  switch (c.kind) {
216
230
  case "create-table": return `DROP TABLE ${quote(c.table.name)};`;
@@ -234,10 +248,9 @@ function renderDownNative(c: Change): string {
234
248
  case "drop-fk":
235
249
  // These are handled by renderRecreate before reaching renderDownNative.
236
250
  throw new Error(`renderDownNative: ${c.kind} should have been handled by recreate bundler`);
237
- case "create-view":
238
- case "drop-view":
239
- case "replace-view":
240
- throw new Error(`unexpected view-kind in renderSqlite: ${c.kind}`);
251
+ case "create-view": return `DROP VIEW IF EXISTS ${quote(c.view.name)};`;
252
+ case "drop-view": return `-- WARNING: down migration cannot restore the original view definition`;
253
+ case "replace-view": return `-- WARNING: down migration cannot restore the original view definition`;
241
254
  }
242
255
  }
243
256
 
@@ -58,9 +58,8 @@ import {
58
58
  import type { SqlType } from "./sql-type.js";
59
59
  import type {
60
60
  Dialect, SchemaSnapshot, TableDescriptor, ColumnDescriptor, IndexDescriptor, FkDescriptor,
61
- CheckDescriptor,
61
+ CheckDescriptor, ViewDescriptor,
62
62
  } from "./types.js";
63
- import { buildExpectedViews } from "./expected-views.js";
64
63
  import {
65
64
  resolveReferentialActions,
66
65
  validateSetNullNullability,
@@ -85,6 +84,14 @@ export interface BuildExpectedSchemaOptions {
85
84
  * mismatch yields a schema whose columns the runtime can't address.
86
85
  */
87
86
  columnNamingStrategy?: ColumnNamingStrategy;
87
+ /**
88
+ * Expected views (projection → CREATE VIEW body), computed by the caller via
89
+ * codegen-ts's `buildProjectionViews` and threaded in. migrate-ts does NOT
90
+ * generate view DDL itself (it stays dependency-pure — never importing the
91
+ * code generator); view SQL has a single source, `emitViewDdl` in codegen-ts.
92
+ * Defaults to none.
93
+ */
94
+ views?: readonly ViewDescriptor[];
88
95
  }
89
96
 
90
97
  export function buildExpectedSchema(
@@ -160,10 +167,10 @@ export function buildExpectedSchema(
160
167
  }
161
168
  }
162
169
 
163
- // Pass 4: views from read-only projections. Built regardless of dialect so
164
- // the diff produces correct create-view changes; emit() refuses them for
165
- // sqlite/d1 with a clear error ("view migration not implemented for ...").
166
- const views = buildExpectedViews(root as MetaRoot, strategy);
170
+ // Pass 4: views from read-only projections supplied by the caller (computed
171
+ // via codegen-ts's buildProjectionViews, the single view-SQL source). migrate-ts
172
+ // never generates view DDL itself, keeping it free of a codegen-ts dependency.
173
+ const views = (opts?.views ?? []) as ViewDescriptor[];
167
174
 
168
175
  return { tables, views };
169
176
  }
package/src/index.ts CHANGED
@@ -50,12 +50,11 @@ export type { EmitOptions } from "./emit/index.js";
50
50
  export type { WriteMigrationOptions, WriteMigrationResult } from "./write-migration.js";
51
51
  export type { WriteMigrationD1Options, WriteMigrationD1Result } from "./write-migration-d1.js";
52
52
 
53
- // View diff + dialect emitters
53
+ // View-body comparison — used by the diff to detect body drift (replace-view).
54
+ // View DDL itself is produced by the diff + rendered by each dialect's emitter;
55
+ // there is no standalone view-migration emitter (the source-aware-diff / view-diff
56
+ // / view-ddl-{postgres,sqlite} stack was folded into the schema-diff path).
54
57
  export { normalizeViewSql, viewSqlEquals } from "./view-sql-compare.js";
55
- export { classifyViewDiff } from "./view-diff.js";
56
- export type { ViewShape, ViewDiffClass, ViewMigrationOpts } from "./view-diff.js";
57
- export { emitPostgresViewMigration } from "./view-ddl-postgres.js";
58
- export { emitSqliteViewMigration } from "./view-ddl-sqlite.js";
59
58
 
60
59
  // D1 dialect emitter + safety pass.
61
60
  // renderD1 is exported directly (unlike renderSqlite/renderPostgres) so
@@ -64,14 +63,6 @@ export { emitSqliteViewMigration } from "./view-ddl-sqlite.js";
64
63
  export { renderD1 } from "./emit/d1.js";
65
64
  export { applyD1SafetyPass, D1UnsupportedStatementError } from "./emit/d1-safety-pass.js";
66
65
 
67
- // View migrations orchestrator
68
- export {
69
- computeViewMigrations,
70
- type ViewMigrationInput,
71
- type ViewMigrationsOpts,
72
- type ViewMigrationsResult,
73
- } from "./source-aware-diff.js";
74
-
75
66
  // D1 introspection
76
67
  export { introspectD1, type D1Runner, type IntrospectD1Options } from "./introspect/d1.js";
77
68
 
@@ -177,10 +177,17 @@ async function readForeignKeys(exec: Exec, table: string): Promise<FkDescriptor[
177
177
  }
178
178
 
179
179
  async function readViews(exec: Exec): Promise<ViewDescriptor[]> {
180
+ // sqlite_master.sql holds the full `CREATE VIEW <name> AS <body>` statement, so
181
+ // D1 gets the same view-body drift detection as the kysely sqlite path — the
182
+ // diff's comparator strips the leading CREATE VIEW before comparing bodies.
180
183
  const rows = await exec(
181
- "SELECT name FROM sqlite_master WHERE type='view' AND name NOT LIKE 'sqlite_%' ORDER BY name",
184
+ "SELECT name, sql FROM sqlite_master WHERE type='view' AND name NOT LIKE 'sqlite_%' ORDER BY name",
182
185
  );
183
- return rows.map((r) => ({ name: String(r.name) }));
186
+ return rows.map((r) => {
187
+ const view: ViewDescriptor = { name: String(r.name) };
188
+ if (r.sql) view.sql = String(r.sql);
189
+ return view;
190
+ });
184
191
  }
185
192
 
186
193
  /**
@@ -2,7 +2,7 @@
2
2
  import type { ColumnNamingStrategy, MetaData } from "@metaobjectsdev/metadata";
3
3
  import { buildExpectedSchema } from "../expected-schema.js";
4
4
  import { diff, type DiffArgs } from "../diff/index.js";
5
- import type { Dialect, DiffResult, SchemaSnapshot } from "../types.js";
5
+ import type { Dialect, DiffResult, SchemaSnapshot, ViewDescriptor } from "../types.js";
6
6
 
7
7
  export interface PlanOfflineArgs extends Pick<DiffArgs, "allow" | "onAmbiguous" | "ignoreTables"> {
8
8
  metadata: MetaData;
@@ -10,6 +10,8 @@ export interface PlanOfflineArgs extends Pick<DiffArgs, "allow" | "onAmbiguous"
10
10
  /** The stored reference snapshot (the "from" side). Use `{ tables: [], views: [] }` for a fresh project. */
11
11
  snapshot: SchemaSnapshot;
12
12
  columnNamingStrategy?: ColumnNamingStrategy;
13
+ /** Expected views (via codegen-ts `buildProjectionViews`) — threaded into buildExpectedSchema. */
14
+ views?: readonly ViewDescriptor[];
13
15
  }
14
16
 
15
17
  export interface PlanOfflineResult {
@@ -28,6 +30,7 @@ export async function planOffline(args: PlanOfflineArgs): Promise<PlanOfflineRes
28
30
  const nextSnapshot = buildExpectedSchema(args.metadata, {
29
31
  dialect: args.dialect,
30
32
  ...(args.columnNamingStrategy ? { columnNamingStrategy: args.columnNamingStrategy } : {}),
33
+ ...(args.views !== undefined ? { views: args.views } : {}),
31
34
  });
32
35
  const result = await diff({
33
36
  expected: nextSnapshot,
@@ -45,9 +48,11 @@ export function baselineFromMetadata(
45
48
  metadata: MetaData,
46
49
  dialect: Dialect,
47
50
  columnNamingStrategy?: ColumnNamingStrategy,
51
+ views?: readonly ViewDescriptor[],
48
52
  ): SchemaSnapshot {
49
53
  return buildExpectedSchema(metadata, {
50
54
  dialect,
51
55
  ...(columnNamingStrategy ? { columnNamingStrategy } : {}),
56
+ ...(views !== undefined ? { views } : {}),
52
57
  });
53
58
  }
package/src/types.ts CHANGED
@@ -129,6 +129,14 @@ export interface ViewDescriptor {
129
129
  * body change triggers a `replace-view`.
130
130
  */
131
131
  sql?: string;
132
+ /**
133
+ * Physical tables this view reads (base + joined tables). Populated on the
134
+ * EXPECTED side only (the view producer knows the join graph; introspection
135
+ * does not resolve it). The diff uses it to drop + recreate the view around a
136
+ * column-altering change to one of its source tables — postgres blocks ALTER on
137
+ * a column a view depends on, and sqlite's recreate-and-copy rebuilds the table.
138
+ */
139
+ dependsOn?: readonly string[];
132
140
  }
133
141
 
134
142
  // ---------------------------------------------------------------------------
@@ -1,15 +1,13 @@
1
1
  // view-sql-compare.ts — the single shared comparator for view definition SQL.
2
2
  //
3
3
  // View definition SQL arrives in two shapes across the pipeline:
4
- // - EXPECTED (buildExpectedViews): the body only — `SELECT ... FROM ...`.
5
- // - ACTUAL (introspect): sqlite's sqlite_master.sql is the full
4
+ // - EXPECTED (buildProjectionViews): the body only — `SELECT ... FROM ...`.
5
+ // - ACTUAL (introspect): sqlite's/D1's sqlite_master.sql is the full
6
6
  // `CREATE VIEW <name> AS <body>`; Postgres' view_definition is body-only.
7
- // - The CLI's readExistingViewSql synthesizes `CREATE VIEW <name> AS <body>`
8
- // for Postgres so it matches what emitViewDdl produces.
9
7
  //
10
- // normalizeViewSql reduces any of these to a comparable canonical form so the
11
- // diff (expected vs introspected) and the CLI (emitted DDL vs existing DDL) use
12
- // ONE comparison. It strips a leading `CREATE [OR REPLACE] VIEW <name> AS`,
8
+ // normalizeViewSql reduces either of these to a comparable canonical form so the
9
+ // diff (expected vs introspected) uses ONE comparison. It strips a leading
10
+ // `CREATE [OR REPLACE] VIEW <name> AS`,
13
11
  // collapses runs of whitespace to a single space, drops a trailing `;`, and
14
12
  // lower-cases — view-body drift should be classified by structure, not by
15
13
  // incidental whitespace/case/wrapper differences.
@@ -1,5 +0,0 @@
1
- import type { MetaRoot } from "@metaobjectsdev/metadata";
2
- import { type ColumnNamingStrategy } from "@metaobjectsdev/metadata";
3
- import type { ViewDescriptor } from "./types.js";
4
- export declare function buildExpectedViews(root: MetaRoot, strategy: ColumnNamingStrategy): ViewDescriptor[];
5
- //# sourceMappingURL=expected-views.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"expected-views.d.ts","sourceRoot":"","sources":["../src/expected-views.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAc,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EACL,KAAK,oBAAoB,EAW1B,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,oBAAoB,GAAG,cAAc,EAAE,CAWnG"}