@metaobjectsdev/migrate-ts 0.9.0-rc.1 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/check-expr-compare.d.ts.map +1 -1
- package/dist/check-expr-compare.js +9 -0
- package/dist/check-expr-compare.js.map +1 -1
- package/dist/expected-schema.d.ts.map +1 -1
- package/dist/expected-schema.js +76 -15
- package/dist/expected-schema.js.map +1 -1
- package/package.json +15 -4
- package/src/check-expr-compare.ts +9 -0
- package/src/expected-schema.ts +84 -17
|
@@ -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,
|
|
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"}
|
|
@@ -21,6 +21,15 @@ export function normalizeCheckExpr(expr) {
|
|
|
21
21
|
// (`slug ~ 'a::foo'`) is preserved — otherwise two distinct regex CHECKs would
|
|
22
22
|
// normalize equal and a pattern change would be silently missed.
|
|
23
23
|
.replace(/(?<=')::\s*"?\w+"?/g, "")
|
|
24
|
+
// Unwrap double-quoted IDENTIFIERS only (`"enumval"` → `enumval`). We emit a
|
|
25
|
+
// quoted column (`"enumVal" IN (...)`) so a mixed-case column is valid SQL;
|
|
26
|
+
// PG's introspected definition quotes mixed-case identifiers too. Unwrapping
|
|
27
|
+
// makes the generated and introspected forms compare equal, and keeps a
|
|
28
|
+
// legacy unquoted check matching its quoted re-emit. The pattern matches only
|
|
29
|
+
// a quote-pair wrapping a bare identifier (word chars), so a `"` INSIDE a
|
|
30
|
+
// single-quoted string/regex literal (`slug ~ 'a"b'`) is preserved — two
|
|
31
|
+
// distinct patterns must not normalize equal.
|
|
32
|
+
.replace(/"(\w+)"/g, "$1")
|
|
24
33
|
.replace(/[()[\]]/g, " ") // drop parens AND square brackets (ARRAY[…])
|
|
25
34
|
.replace(/\s+/g, " ")
|
|
26
35
|
.trim();
|
|
@@ -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;
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expected-schema.d.ts","sourceRoot":"","sources":["../src/expected-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAuC,MAAM,0BAA0B,CAAC;AA2CpH,OAAO,KAAK,EACV,OAAO,EAAE,cAAc,EAExB,MAAM,YAAY,CAAC;AAUpB,MAAM,WAAW,0BAA0B;IACzC;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;CAC7C;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,QAAQ,EACd,IAAI,CAAC,EAAE,0BAA0B,GAChC,cAAc,
|
|
1
|
+
{"version":3,"file":"expected-schema.d.ts","sourceRoot":"","sources":["../src/expected-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAuC,MAAM,0BAA0B,CAAC;AA2CpH,OAAO,KAAK,EACV,OAAO,EAAE,cAAc,EAExB,MAAM,YAAY,CAAC;AAUpB,MAAM,WAAW,0BAA0B;IACzC;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;CAC7C;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,QAAQ,EACd,IAAI,CAAC,EAAE,0BAA0B,GAChC,cAAc,CAqEhB"}
|
package/dist/expected-schema.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { VALIDATOR_SUBTYPE_NUMERIC, VALIDATOR_SUBTYPE_LENGTH, VALIDATOR_SUBTYPE_REGEX, VALIDATOR_ATTR_PATTERN, TYPE_OBJECT, MetaSource, IDENTITY_ATTR_GENERATION, IDENTITY_ATTR_UNIQUE, FIELD_ATTR_DEFAULT, FIELD_ATTR_MAX_LENGTH, FIELD_ATTR_PRECISION, FIELD_ATTR_SCALE, FIELD_ATTR_UNIQUE, FIELD_SUBTYPE_STRING, FIELD_SUBTYPE_INT, FIELD_SUBTYPE_LONG,
|
|
1
|
+
import { VALIDATOR_SUBTYPE_NUMERIC, VALIDATOR_SUBTYPE_LENGTH, VALIDATOR_SUBTYPE_REGEX, VALIDATOR_ATTR_PATTERN, TYPE_OBJECT, TYPE_FIELD, OBJECT_ATTR_DISCRIMINATOR, OBJECT_ATTR_DISCRIMINATOR_VALUE, MetaSource, IDENTITY_ATTR_GENERATION, IDENTITY_ATTR_UNIQUE, FIELD_ATTR_DEFAULT, FIELD_ATTR_MAX_LENGTH, FIELD_ATTR_PRECISION, FIELD_ATTR_SCALE, FIELD_ATTR_UNIQUE, FIELD_SUBTYPE_STRING, FIELD_SUBTYPE_INT, FIELD_SUBTYPE_LONG, FIELD_SUBTYPE_DOUBLE, FIELD_SUBTYPE_FLOAT, FIELD_SUBTYPE_DECIMAL, FIELD_SUBTYPE_BOOLEAN, FIELD_SUBTYPE_CURRENCY, FIELD_SUBTYPE_DATE, FIELD_SUBTYPE_TIME, FIELD_SUBTYPE_TIMESTAMP, FIELD_SUBTYPE_OBJECT, FIELD_SUBTYPE_UUID, FIELD_SUBTYPE_ENUM, FIELD_ATTR_VALUES, FIELD_ATTR_OBJECT_REF, FIELD_ATTR_STORAGE, FIELD_ATTR_DB_COLUMN_TYPE, DB_COLUMN_TYPE_UUID, DB_COLUMN_TYPE_JSONB, DB_COLUMN_TYPE_TIMESTAMP_WITH_TZ, STORAGE_FLATTENED, DOC_ATTR_DESCRIPTION, applyColumnNamingStrategy, DEFAULT_COLUMN_NAMING_STRATEGY, resolveTableName, resolveColumnName, resolveTableSchema, } from "@metaobjectsdev/metadata";
|
|
2
2
|
import { buildExpectedViews } from "./expected-views.js";
|
|
3
3
|
import { resolveReferentialActions, validateSetNullNullability, readIdentityFields, findField, isRequired, } from "./referential-actions.js";
|
|
4
4
|
export function buildExpectedSchema(root, opts) {
|
|
@@ -20,6 +20,10 @@ export function buildExpectedSchema(root, opts) {
|
|
|
20
20
|
continue;
|
|
21
21
|
if (child.subType === "value")
|
|
22
22
|
continue;
|
|
23
|
+
// FR-017 TPH: a subtype shares its discriminator base's single table, so it
|
|
24
|
+
// emits no table of its own. Its own columns are folded into the base below.
|
|
25
|
+
if (isTphSubtype(child))
|
|
26
|
+
continue;
|
|
23
27
|
const hasReadOnlySource = child.ownChildren().some((c) => c instanceof MetaSource && c.isReadOnly());
|
|
24
28
|
const hasWritableSource = child.ownChildren().some((c) => c instanceof MetaSource && c.isWritable());
|
|
25
29
|
// Projection: read-only and not write-through.
|
|
@@ -96,6 +100,34 @@ function normalizeForSqlite(sqlType) {
|
|
|
96
100
|
return sqlType;
|
|
97
101
|
}
|
|
98
102
|
}
|
|
103
|
+
// ---------------------------------------------------------------------------
|
|
104
|
+
// FR-017 TPH (table-per-hierarchy) — single-table schema emission.
|
|
105
|
+
// ---------------------------------------------------------------------------
|
|
106
|
+
/** The @discriminator-bearing ancestor of `entity`, or undefined for non-TPH. */
|
|
107
|
+
function discriminatorBaseOf(entity) {
|
|
108
|
+
let a = entity.superResolved;
|
|
109
|
+
while (a !== undefined) {
|
|
110
|
+
if (a.ownAttr(OBJECT_ATTR_DISCRIMINATOR) !== undefined)
|
|
111
|
+
return a;
|
|
112
|
+
a = a.superResolved;
|
|
113
|
+
}
|
|
114
|
+
return undefined;
|
|
115
|
+
}
|
|
116
|
+
/** True if `entity` is a TPH SUBTYPE (declares @discriminatorValue + has a
|
|
117
|
+
* discriminator-bearing ancestor). Such an entity emits no table of its own. */
|
|
118
|
+
function isTphSubtype(entity) {
|
|
119
|
+
return (entity.ownAttr(OBJECT_ATTR_DISCRIMINATOR_VALUE) !== undefined &&
|
|
120
|
+
discriminatorBaseOf(entity) !== undefined);
|
|
121
|
+
}
|
|
122
|
+
/** Concrete TPH subtypes whose discriminator base is `base` (root-level scan). */
|
|
123
|
+
function tphConcreteSubtypes(base, root) {
|
|
124
|
+
if (base.ownAttr(OBJECT_ATTR_DISCRIMINATOR) === undefined)
|
|
125
|
+
return [];
|
|
126
|
+
return root.ownChildren().filter((c) => c.type === TYPE_OBJECT &&
|
|
127
|
+
!c.isAbstract &&
|
|
128
|
+
c.ownAttr(OBJECT_ATTR_DISCRIMINATOR_VALUE) !== undefined &&
|
|
129
|
+
discriminatorBaseOf(c) === base);
|
|
130
|
+
}
|
|
99
131
|
function buildTable(entity, tableName, resolveTargetTable, root, strategy, dialect) {
|
|
100
132
|
// Use effective accessors so inherited fields/identities (from `extends:` /
|
|
101
133
|
// abstract bases like BaseEntity) are included.
|
|
@@ -121,6 +153,25 @@ function buildTable(entity, tableName, resolveTargetTable, root, strategy, diale
|
|
|
121
153
|
columns.push(buildColumn(field, isPk, isPk ? pkGeneration : undefined, strategy));
|
|
122
154
|
}
|
|
123
155
|
}
|
|
156
|
+
// FR-017 TPH: if this is a discriminator base, fold each concrete subtype's
|
|
157
|
+
// OWN fields into the single table as NULLABLE columns (a row of any other
|
|
158
|
+
// subtype stores NULL there), even when the field is @required. Dedupe by
|
|
159
|
+
// column name so an inherited/overridden base column is not re-emitted.
|
|
160
|
+
if (entity.ownAttr(OBJECT_ATTR_DISCRIMINATOR) !== undefined) {
|
|
161
|
+
const existing = new Set(columns.map((c) => c.name));
|
|
162
|
+
for (const sub of tphConcreteSubtypes(entity, root)) {
|
|
163
|
+
for (const field of sub.ownChildren()) {
|
|
164
|
+
if (field.type !== TYPE_FIELD)
|
|
165
|
+
continue;
|
|
166
|
+
const col = buildColumn(field, false, undefined, strategy);
|
|
167
|
+
if (existing.has(col.name))
|
|
168
|
+
continue;
|
|
169
|
+
col.nullable = true; // subtype-only columns are always nullable in TPH
|
|
170
|
+
columns.push(col);
|
|
171
|
+
existing.add(col.name);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
124
175
|
const descriptor = {
|
|
125
176
|
name: tableName,
|
|
126
177
|
columns,
|
|
@@ -197,14 +248,14 @@ function buildSecondaryIndexes(entity, tableName, strategy) {
|
|
|
197
248
|
* `<table>_<col>_<validator>_chk`. The expression references the resolved physical
|
|
198
249
|
* column name verbatim (matching the enum-check convention).
|
|
199
250
|
*/
|
|
200
|
-
function validatorCheck(v,
|
|
251
|
+
function validatorCheck(v, qcol, tableName, col, dialect) {
|
|
201
252
|
switch (v.subType) {
|
|
202
253
|
case VALIDATOR_SUBTYPE_NUMERIC: {
|
|
203
254
|
const parts = [];
|
|
204
255
|
if (v.min !== undefined)
|
|
205
|
-
parts.push(`${
|
|
256
|
+
parts.push(`${qcol} >= ${v.min}`);
|
|
206
257
|
if (v.max !== undefined)
|
|
207
|
-
parts.push(`${
|
|
258
|
+
parts.push(`${qcol} <= ${v.max}`);
|
|
208
259
|
if (parts.length === 0)
|
|
209
260
|
return null;
|
|
210
261
|
return { name: `${tableName}_${col}_numeric_chk`, expression: parts.join(" AND ") };
|
|
@@ -212,9 +263,9 @@ function validatorCheck(v, col, tableName, dialect) {
|
|
|
212
263
|
case VALIDATOR_SUBTYPE_LENGTH: {
|
|
213
264
|
const parts = [];
|
|
214
265
|
if (v.min !== undefined)
|
|
215
|
-
parts.push(`length(${
|
|
266
|
+
parts.push(`length(${qcol}) >= ${v.min}`);
|
|
216
267
|
if (v.max !== undefined)
|
|
217
|
-
parts.push(`length(${
|
|
268
|
+
parts.push(`length(${qcol}) <= ${v.max}`);
|
|
218
269
|
if (parts.length === 0)
|
|
219
270
|
return null;
|
|
220
271
|
return { name: `${tableName}_${col}_length_chk`, expression: parts.join(" AND ") };
|
|
@@ -228,29 +279,42 @@ function validatorCheck(v, col, tableName, dialect) {
|
|
|
228
279
|
return null;
|
|
229
280
|
return {
|
|
230
281
|
name: `${tableName}_${col}_regex_chk`,
|
|
231
|
-
expression: `${
|
|
282
|
+
expression: `${qcol} ~ '${pattern.replace(/'/g, "''")}'`,
|
|
232
283
|
};
|
|
233
284
|
}
|
|
234
285
|
default:
|
|
235
286
|
return null;
|
|
236
287
|
}
|
|
237
288
|
}
|
|
289
|
+
/**
|
|
290
|
+
* Quote a column identifier for embedding in a CHECK expression. Both Postgres
|
|
291
|
+
* and SQLite quote identifiers with double-quotes, so the dialect-neutral
|
|
292
|
+
* expression text can carry a quoted column. Quoting is REQUIRED for a
|
|
293
|
+
* mixed-case column (e.g. `enumVal`): a bare `enumVal IN (...)` folds to
|
|
294
|
+
* lowercase `enumval` and references a non-existent column. The check-expression
|
|
295
|
+
* comparator (`normalizeCheckExpr`) strips quotes so an introspected check still
|
|
296
|
+
* compares equal.
|
|
297
|
+
*/
|
|
298
|
+
function quoteCheckCol(col) {
|
|
299
|
+
return `"${col.replace(/"/g, '""')}"`;
|
|
300
|
+
}
|
|
238
301
|
function buildChecks(entity, tableName, strategy, dialect) {
|
|
239
302
|
const checks = [];
|
|
240
303
|
for (const field of entity.fields()) {
|
|
241
304
|
const col = resolveColumnName(field, strategy);
|
|
242
|
-
|
|
305
|
+
const qcol = quoteCheckCol(col);
|
|
306
|
+
// Enum membership check.
|
|
243
307
|
if (field.subType === FIELD_SUBTYPE_ENUM) {
|
|
244
308
|
const raw = field.attr(FIELD_ATTR_VALUES);
|
|
245
309
|
if (Array.isArray(raw) && raw.length > 0) {
|
|
246
310
|
const values = raw.map((v) => String(v));
|
|
247
|
-
const expression = `${
|
|
311
|
+
const expression = `${qcol} IN (${values.map((v) => `'${v.replace(/'/g, "''")}'`).join(", ")})`;
|
|
248
312
|
checks.push({ name: `${tableName}_${col}_chk`, expression });
|
|
249
313
|
}
|
|
250
314
|
}
|
|
251
315
|
// Validator-derived checks.
|
|
252
316
|
for (const v of field.validators()) {
|
|
253
|
-
const check = validatorCheck(v,
|
|
317
|
+
const check = validatorCheck(v, qcol, tableName, col, dialect);
|
|
254
318
|
if (check)
|
|
255
319
|
checks.push(check);
|
|
256
320
|
}
|
|
@@ -374,9 +438,7 @@ function subtypeToSqlType(field) {
|
|
|
374
438
|
const m = field.ownAttr(FIELD_ATTR_MAX_LENGTH);
|
|
375
439
|
return typeof m === "number" ? { kind: "text", maxLength: m } : { kind: "text" };
|
|
376
440
|
}
|
|
377
|
-
case FIELD_SUBTYPE_INT:
|
|
378
|
-
case FIELD_SUBTYPE_SHORT:
|
|
379
|
-
case FIELD_SUBTYPE_BYTE: return { kind: "integer", bits: 32 };
|
|
441
|
+
case FIELD_SUBTYPE_INT: return { kind: "integer", bits: 32 };
|
|
380
442
|
case FIELD_SUBTYPE_LONG:
|
|
381
443
|
case FIELD_SUBTYPE_CURRENCY: return { kind: "integer", bits: 64 };
|
|
382
444
|
case FIELD_SUBTYPE_DOUBLE: return { kind: "real" };
|
|
@@ -398,8 +460,7 @@ function subtypeToSqlType(field) {
|
|
|
398
460
|
case FIELD_SUBTYPE_DATE: return { kind: "date" };
|
|
399
461
|
case FIELD_SUBTYPE_TIME: return { kind: "time" }; // Postgres native TIME (whole-second wire form)
|
|
400
462
|
case FIELD_SUBTYPE_TIMESTAMP: return { kind: "timestamp", withTimezone: false };
|
|
401
|
-
case FIELD_SUBTYPE_OBJECT:
|
|
402
|
-
case FIELD_SUBTYPE_CLASS: return { kind: "json" };
|
|
463
|
+
case FIELD_SUBTYPE_OBJECT: return { kind: "json" };
|
|
403
464
|
case FIELD_SUBTYPE_UUID: return { kind: "uuid" }; // R6 Plan 2a — Postgres native uuid
|
|
404
465
|
default: return { kind: "text" }; // unknown → text fallback
|
|
405
466
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expected-schema.js","sourceRoot":"","sources":["../src/expected-schema.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"expected-schema.js","sourceRoot":"","sources":["../src/expected-schema.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.
|
|
3
|
+
"version": "0.10.0",
|
|
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",
|
|
@@ -12,7 +12,12 @@
|
|
|
12
12
|
"default": "./dist/index.js"
|
|
13
13
|
}
|
|
14
14
|
},
|
|
15
|
-
"files": [
|
|
15
|
+
"files": [
|
|
16
|
+
"dist",
|
|
17
|
+
"src",
|
|
18
|
+
"README.md",
|
|
19
|
+
"LICENSE"
|
|
20
|
+
],
|
|
16
21
|
"scripts": {
|
|
17
22
|
"build": "tsc -p .",
|
|
18
23
|
"typecheck": "tsc -p tsconfig.typecheck.json"
|
|
@@ -28,13 +33,19 @@
|
|
|
28
33
|
"url": "https://github.com/metaobjectsdev/metaobjects.git",
|
|
29
34
|
"directory": "server/typescript/packages/migrate-ts"
|
|
30
35
|
},
|
|
31
|
-
"keywords": [
|
|
36
|
+
"keywords": [
|
|
37
|
+
"metaobjects",
|
|
38
|
+
"migrate",
|
|
39
|
+
"postgres",
|
|
40
|
+
"sqlite",
|
|
41
|
+
"schema-diff"
|
|
42
|
+
],
|
|
32
43
|
"publishConfig": {
|
|
33
44
|
"access": "public"
|
|
34
45
|
},
|
|
35
46
|
"dependencies": {
|
|
36
47
|
"@iarna/toml": "^2.2.5",
|
|
37
|
-
"@metaobjectsdev/metadata": "0.
|
|
48
|
+
"@metaobjectsdev/metadata": "0.10.0"
|
|
38
49
|
},
|
|
39
50
|
"peerDependencies": {
|
|
40
51
|
"kysely": ">=0.27.0"
|
|
@@ -22,6 +22,15 @@ export function normalizeCheckExpr(expr: string): string {
|
|
|
22
22
|
// (`slug ~ 'a::foo'`) is preserved — otherwise two distinct regex CHECKs would
|
|
23
23
|
// normalize equal and a pattern change would be silently missed.
|
|
24
24
|
.replace(/(?<=')::\s*"?\w+"?/g, "")
|
|
25
|
+
// Unwrap double-quoted IDENTIFIERS only (`"enumval"` → `enumval`). We emit a
|
|
26
|
+
// quoted column (`"enumVal" IN (...)`) so a mixed-case column is valid SQL;
|
|
27
|
+
// PG's introspected definition quotes mixed-case identifiers too. Unwrapping
|
|
28
|
+
// makes the generated and introspected forms compare equal, and keeps a
|
|
29
|
+
// legacy unquoted check matching its quoted re-emit. The pattern matches only
|
|
30
|
+
// a quote-pair wrapping a bare identifier (word chars), so a `"` INSIDE a
|
|
31
|
+
// single-quoted string/regex literal (`slug ~ 'a"b'`) is preserved — two
|
|
32
|
+
// distinct patterns must not normalize equal.
|
|
33
|
+
.replace(/"(\w+)"/g, "$1")
|
|
25
34
|
.replace(/[()[\]]/g, " ") // drop parens AND square brackets (ARRAY[…])
|
|
26
35
|
.replace(/\s+/g, " ")
|
|
27
36
|
.trim();
|
package/src/expected-schema.ts
CHANGED
|
@@ -3,6 +3,9 @@ import {
|
|
|
3
3
|
VALIDATOR_SUBTYPE_NUMERIC, VALIDATOR_SUBTYPE_LENGTH, VALIDATOR_SUBTYPE_REGEX,
|
|
4
4
|
VALIDATOR_ATTR_PATTERN,
|
|
5
5
|
TYPE_OBJECT,
|
|
6
|
+
TYPE_FIELD,
|
|
7
|
+
OBJECT_ATTR_DISCRIMINATOR,
|
|
8
|
+
OBJECT_ATTR_DISCRIMINATOR_VALUE,
|
|
6
9
|
MetaSource,
|
|
7
10
|
IDENTITY_ATTR_GENERATION,
|
|
8
11
|
IDENTITY_ATTR_UNIQUE,
|
|
@@ -14,8 +17,6 @@ import {
|
|
|
14
17
|
FIELD_SUBTYPE_STRING,
|
|
15
18
|
FIELD_SUBTYPE_INT,
|
|
16
19
|
FIELD_SUBTYPE_LONG,
|
|
17
|
-
FIELD_SUBTYPE_SHORT,
|
|
18
|
-
FIELD_SUBTYPE_BYTE,
|
|
19
20
|
FIELD_SUBTYPE_DOUBLE,
|
|
20
21
|
FIELD_SUBTYPE_FLOAT,
|
|
21
22
|
FIELD_SUBTYPE_DECIMAL,
|
|
@@ -25,7 +26,6 @@ import {
|
|
|
25
26
|
FIELD_SUBTYPE_TIME,
|
|
26
27
|
FIELD_SUBTYPE_TIMESTAMP,
|
|
27
28
|
FIELD_SUBTYPE_OBJECT,
|
|
28
|
-
FIELD_SUBTYPE_CLASS,
|
|
29
29
|
FIELD_SUBTYPE_UUID,
|
|
30
30
|
FIELD_SUBTYPE_ENUM,
|
|
31
31
|
FIELD_ATTR_VALUES,
|
|
@@ -92,6 +92,9 @@ export function buildExpectedSchema(
|
|
|
92
92
|
if (child.type !== TYPE_OBJECT) continue;
|
|
93
93
|
if (child.isAbstract) continue;
|
|
94
94
|
if (child.subType === "value") continue;
|
|
95
|
+
// FR-017 TPH: a subtype shares its discriminator base's single table, so it
|
|
96
|
+
// emits no table of its own. Its own columns are folded into the base below.
|
|
97
|
+
if (isTphSubtype(child)) continue;
|
|
95
98
|
const hasReadOnlySource = child.ownChildren().some(
|
|
96
99
|
(c) => c instanceof MetaSource && c.isReadOnly(),
|
|
97
100
|
);
|
|
@@ -179,6 +182,41 @@ function normalizeForSqlite(sqlType: SqlType): SqlType {
|
|
|
179
182
|
}
|
|
180
183
|
}
|
|
181
184
|
|
|
185
|
+
// ---------------------------------------------------------------------------
|
|
186
|
+
// FR-017 TPH (table-per-hierarchy) — single-table schema emission.
|
|
187
|
+
// ---------------------------------------------------------------------------
|
|
188
|
+
|
|
189
|
+
/** The @discriminator-bearing ancestor of `entity`, or undefined for non-TPH. */
|
|
190
|
+
function discriminatorBaseOf(entity: MetaData): MetaData | undefined {
|
|
191
|
+
let a = entity.superResolved;
|
|
192
|
+
while (a !== undefined) {
|
|
193
|
+
if (a.ownAttr(OBJECT_ATTR_DISCRIMINATOR) !== undefined) return a;
|
|
194
|
+
a = a.superResolved;
|
|
195
|
+
}
|
|
196
|
+
return undefined;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
/** True if `entity` is a TPH SUBTYPE (declares @discriminatorValue + has a
|
|
200
|
+
* discriminator-bearing ancestor). Such an entity emits no table of its own. */
|
|
201
|
+
function isTphSubtype(entity: MetaData): boolean {
|
|
202
|
+
return (
|
|
203
|
+
entity.ownAttr(OBJECT_ATTR_DISCRIMINATOR_VALUE) !== undefined &&
|
|
204
|
+
discriminatorBaseOf(entity) !== undefined
|
|
205
|
+
);
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
/** Concrete TPH subtypes whose discriminator base is `base` (root-level scan). */
|
|
209
|
+
function tphConcreteSubtypes(base: MetaObject, root: MetaData): MetaObject[] {
|
|
210
|
+
if (base.ownAttr(OBJECT_ATTR_DISCRIMINATOR) === undefined) return [];
|
|
211
|
+
return root.ownChildren().filter(
|
|
212
|
+
(c): c is MetaObject =>
|
|
213
|
+
c.type === TYPE_OBJECT &&
|
|
214
|
+
!c.isAbstract &&
|
|
215
|
+
c.ownAttr(OBJECT_ATTR_DISCRIMINATOR_VALUE) !== undefined &&
|
|
216
|
+
discriminatorBaseOf(c) === base,
|
|
217
|
+
);
|
|
218
|
+
}
|
|
219
|
+
|
|
182
220
|
function buildTable(
|
|
183
221
|
entity: MetaObject,
|
|
184
222
|
tableName: string,
|
|
@@ -216,6 +254,24 @@ function buildTable(
|
|
|
216
254
|
}
|
|
217
255
|
}
|
|
218
256
|
|
|
257
|
+
// FR-017 TPH: if this is a discriminator base, fold each concrete subtype's
|
|
258
|
+
// OWN fields into the single table as NULLABLE columns (a row of any other
|
|
259
|
+
// subtype stores NULL there), even when the field is @required. Dedupe by
|
|
260
|
+
// column name so an inherited/overridden base column is not re-emitted.
|
|
261
|
+
if (entity.ownAttr(OBJECT_ATTR_DISCRIMINATOR) !== undefined) {
|
|
262
|
+
const existing = new Set(columns.map((c) => c.name));
|
|
263
|
+
for (const sub of tphConcreteSubtypes(entity, root)) {
|
|
264
|
+
for (const field of sub.ownChildren()) {
|
|
265
|
+
if (field.type !== TYPE_FIELD) continue;
|
|
266
|
+
const col = buildColumn(field, false, undefined, strategy);
|
|
267
|
+
if (existing.has(col.name)) continue;
|
|
268
|
+
col.nullable = true; // subtype-only columns are always nullable in TPH
|
|
269
|
+
columns.push(col);
|
|
270
|
+
existing.add(col.name);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
|
|
219
275
|
const descriptor: TableDescriptor = {
|
|
220
276
|
name: tableName,
|
|
221
277
|
columns,
|
|
@@ -297,20 +353,20 @@ function buildSecondaryIndexes(
|
|
|
297
353
|
* column name verbatim (matching the enum-check convention).
|
|
298
354
|
*/
|
|
299
355
|
function validatorCheck(
|
|
300
|
-
v: MetaValidator,
|
|
356
|
+
v: MetaValidator, qcol: string, tableName: string, col: string, dialect: Dialect | undefined,
|
|
301
357
|
): CheckDescriptor | null {
|
|
302
358
|
switch (v.subType) {
|
|
303
359
|
case VALIDATOR_SUBTYPE_NUMERIC: {
|
|
304
360
|
const parts: string[] = [];
|
|
305
|
-
if (v.min !== undefined) parts.push(`${
|
|
306
|
-
if (v.max !== undefined) parts.push(`${
|
|
361
|
+
if (v.min !== undefined) parts.push(`${qcol} >= ${v.min}`);
|
|
362
|
+
if (v.max !== undefined) parts.push(`${qcol} <= ${v.max}`);
|
|
307
363
|
if (parts.length === 0) return null;
|
|
308
364
|
return { name: `${tableName}_${col}_numeric_chk`, expression: parts.join(" AND ") };
|
|
309
365
|
}
|
|
310
366
|
case VALIDATOR_SUBTYPE_LENGTH: {
|
|
311
367
|
const parts: string[] = [];
|
|
312
|
-
if (v.min !== undefined) parts.push(`length(${
|
|
313
|
-
if (v.max !== undefined) parts.push(`length(${
|
|
368
|
+
if (v.min !== undefined) parts.push(`length(${qcol}) >= ${v.min}`);
|
|
369
|
+
if (v.max !== undefined) parts.push(`length(${qcol}) <= ${v.max}`);
|
|
314
370
|
if (parts.length === 0) return null;
|
|
315
371
|
return { name: `${tableName}_${col}_length_chk`, expression: parts.join(" AND ") };
|
|
316
372
|
}
|
|
@@ -321,7 +377,7 @@ function validatorCheck(
|
|
|
321
377
|
if (typeof pattern !== "string" || pattern.length === 0) return null;
|
|
322
378
|
return {
|
|
323
379
|
name: `${tableName}_${col}_regex_chk`,
|
|
324
|
-
expression: `${
|
|
380
|
+
expression: `${qcol} ~ '${pattern.replace(/'/g, "''")}'`,
|
|
325
381
|
};
|
|
326
382
|
}
|
|
327
383
|
default:
|
|
@@ -329,24 +385,38 @@ function validatorCheck(
|
|
|
329
385
|
}
|
|
330
386
|
}
|
|
331
387
|
|
|
388
|
+
/**
|
|
389
|
+
* Quote a column identifier for embedding in a CHECK expression. Both Postgres
|
|
390
|
+
* and SQLite quote identifiers with double-quotes, so the dialect-neutral
|
|
391
|
+
* expression text can carry a quoted column. Quoting is REQUIRED for a
|
|
392
|
+
* mixed-case column (e.g. `enumVal`): a bare `enumVal IN (...)` folds to
|
|
393
|
+
* lowercase `enumval` and references a non-existent column. The check-expression
|
|
394
|
+
* comparator (`normalizeCheckExpr`) strips quotes so an introspected check still
|
|
395
|
+
* compares equal.
|
|
396
|
+
*/
|
|
397
|
+
function quoteCheckCol(col: string): string {
|
|
398
|
+
return `"${col.replace(/"/g, '""')}"`;
|
|
399
|
+
}
|
|
400
|
+
|
|
332
401
|
function buildChecks(
|
|
333
402
|
entity: MetaObject, tableName: string, strategy: ColumnNamingStrategy, dialect: Dialect | undefined,
|
|
334
403
|
): CheckDescriptor[] {
|
|
335
404
|
const checks: CheckDescriptor[] = [];
|
|
336
405
|
for (const field of entity.fields()) {
|
|
337
406
|
const col = resolveColumnName(field, strategy);
|
|
338
|
-
|
|
407
|
+
const qcol = quoteCheckCol(col);
|
|
408
|
+
// Enum membership check.
|
|
339
409
|
if (field.subType === FIELD_SUBTYPE_ENUM) {
|
|
340
410
|
const raw = field.attr(FIELD_ATTR_VALUES);
|
|
341
411
|
if (Array.isArray(raw) && raw.length > 0) {
|
|
342
412
|
const values = raw.map((v) => String(v));
|
|
343
|
-
const expression = `${
|
|
413
|
+
const expression = `${qcol} IN (${values.map((v) => `'${v.replace(/'/g, "''")}'`).join(", ")})`;
|
|
344
414
|
checks.push({ name: `${tableName}_${col}_chk`, expression });
|
|
345
415
|
}
|
|
346
416
|
}
|
|
347
417
|
// Validator-derived checks.
|
|
348
418
|
for (const v of field.validators()) {
|
|
349
|
-
const check = validatorCheck(v,
|
|
419
|
+
const check = validatorCheck(v, qcol, tableName, col, dialect);
|
|
350
420
|
if (check) checks.push(check);
|
|
351
421
|
}
|
|
352
422
|
}
|
|
@@ -489,9 +559,7 @@ function subtypeToSqlType(field: MetaData): SqlType {
|
|
|
489
559
|
const m = field.ownAttr(FIELD_ATTR_MAX_LENGTH);
|
|
490
560
|
return typeof m === "number" ? { kind: "text", maxLength: m } : { kind: "text" };
|
|
491
561
|
}
|
|
492
|
-
case FIELD_SUBTYPE_INT:
|
|
493
|
-
case FIELD_SUBTYPE_SHORT:
|
|
494
|
-
case FIELD_SUBTYPE_BYTE: return { kind: "integer", bits: 32 };
|
|
562
|
+
case FIELD_SUBTYPE_INT: return { kind: "integer", bits: 32 };
|
|
495
563
|
case FIELD_SUBTYPE_LONG:
|
|
496
564
|
case FIELD_SUBTYPE_CURRENCY: return { kind: "integer", bits: 64 };
|
|
497
565
|
case FIELD_SUBTYPE_DOUBLE: return { kind: "real" };
|
|
@@ -513,8 +581,7 @@ function subtypeToSqlType(field: MetaData): SqlType {
|
|
|
513
581
|
case FIELD_SUBTYPE_DATE: return { kind: "date" };
|
|
514
582
|
case FIELD_SUBTYPE_TIME: return { kind: "time" }; // Postgres native TIME (whole-second wire form)
|
|
515
583
|
case FIELD_SUBTYPE_TIMESTAMP: return { kind: "timestamp", withTimezone: false };
|
|
516
|
-
case FIELD_SUBTYPE_OBJECT:
|
|
517
|
-
case FIELD_SUBTYPE_CLASS: return { kind: "json" };
|
|
584
|
+
case FIELD_SUBTYPE_OBJECT: return { kind: "json" };
|
|
518
585
|
case FIELD_SUBTYPE_UUID: return { kind: "uuid" }; // R6 Plan 2a — Postgres native uuid
|
|
519
586
|
default: return { kind: "text" }; // unknown → text fallback
|
|
520
587
|
}
|