@zyno-io/dk-server-foundation 26.412.2137 → 26.601.2229
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/resources/proto/generated/devconsole/devconsole.js +1 -1
- package/dist/src/app/config.d.ts +1 -0
- package/dist/src/app/config.d.ts.map +1 -1
- package/dist/src/app/config.js +1 -1
- package/dist/src/app/config.js.map +1 -1
- package/dist/src/database/common.d.ts +3 -0
- package/dist/src/database/common.d.ts.map +1 -1
- package/dist/src/database/common.js +46 -1
- package/dist/src/database/common.js.map +1 -1
- package/dist/src/database/factory.d.ts +17 -0
- package/dist/src/database/factory.d.ts.map +1 -0
- package/dist/src/database/factory.js +53 -0
- package/dist/src/database/factory.js.map +1 -0
- package/dist/src/database/index.d.ts +2 -0
- package/dist/src/database/index.d.ts.map +1 -1
- package/dist/src/database/index.js +2 -0
- package/dist/src/database/index.js.map +1 -1
- package/dist/src/database/migration/MigrationResetCommand.d.ts.map +1 -1
- package/dist/src/database/migration/MigrationResetCommand.js +6 -20
- package/dist/src/database/migration/MigrationResetCommand.js.map +1 -1
- package/dist/src/database/migration/MigrationRunCommand.d.ts.map +1 -1
- package/dist/src/database/migration/MigrationRunCommand.js +2 -0
- package/dist/src/database/migration/MigrationRunCommand.js.map +1 -1
- package/dist/src/database/migration/create/MigrationCreateCommand.d.ts +2 -0
- package/dist/src/database/migration/create/MigrationCreateCommand.d.ts.map +1 -1
- package/dist/src/database/migration/create/MigrationCreateCommand.js +36 -11
- package/dist/src/database/migration/create/MigrationCreateCommand.js.map +1 -1
- package/dist/src/database/migration/create/builder-regenerator.d.ts +12 -0
- package/dist/src/database/migration/create/builder-regenerator.d.ts.map +1 -0
- package/dist/src/database/migration/create/builder-regenerator.js +308 -0
- package/dist/src/database/migration/create/builder-regenerator.js.map +1 -0
- package/dist/src/database/migration/create/comparator.js +33 -4
- package/dist/src/database/migration/create/comparator.js.map +1 -1
- package/dist/src/database/migration/create/db-reader.js +63 -9
- package/dist/src/database/migration/create/db-reader.js.map +1 -1
- package/dist/src/database/migration/create/ddl-generator.d.ts.map +1 -1
- package/dist/src/database/migration/create/ddl-generator.js +44 -206
- package/dist/src/database/migration/create/ddl-generator.js.map +1 -1
- package/dist/src/database/migration/create/entity-reader.js +47 -5
- package/dist/src/database/migration/create/entity-reader.js.map +1 -1
- package/dist/src/database/migration/create/file-generator.d.ts +2 -0
- package/dist/src/database/migration/create/file-generator.d.ts.map +1 -1
- package/dist/src/database/migration/create/file-generator.js +7 -2
- package/dist/src/database/migration/create/file-generator.js.map +1 -1
- package/dist/src/database/migration/create/schema-model.d.ts +9 -0
- package/dist/src/database/migration/create/schema-model.d.ts.map +1 -1
- package/dist/src/database/migration/create/schema-model.js +3 -3
- package/dist/src/database/mysql.d.ts.map +1 -1
- package/dist/src/database/mysql.js +5 -11
- package/dist/src/database/mysql.js.map +1 -1
- package/dist/src/database/postgres.d.ts +1 -0
- package/dist/src/database/postgres.d.ts.map +1 -1
- package/dist/src/database/postgres.js +1 -13
- package/dist/src/database/postgres.js.map +1 -1
- package/dist/src/database/schema/AlterBlueprint.d.ts +50 -0
- package/dist/src/database/schema/AlterBlueprint.d.ts.map +1 -0
- package/dist/src/database/schema/AlterBlueprint.js +88 -0
- package/dist/src/database/schema/AlterBlueprint.js.map +1 -0
- package/dist/src/database/schema/Blueprint.d.ts +16 -0
- package/dist/src/database/schema/Blueprint.d.ts.map +1 -0
- package/dist/src/database/schema/Blueprint.js +51 -0
- package/dist/src/database/schema/Blueprint.js.map +1 -0
- package/dist/src/database/schema/BlueprintBase.d.ts +65 -0
- package/dist/src/database/schema/BlueprintBase.d.ts.map +1 -0
- package/dist/src/database/schema/BlueprintBase.js +385 -0
- package/dist/src/database/schema/BlueprintBase.js.map +1 -0
- package/dist/src/database/schema/ColumnDefinition.d.ts +43 -0
- package/dist/src/database/schema/ColumnDefinition.d.ts.map +1 -0
- package/dist/src/database/schema/ColumnDefinition.js +117 -0
- package/dist/src/database/schema/ColumnDefinition.js.map +1 -0
- package/dist/src/database/schema/Schema.d.ts +32 -0
- package/dist/src/database/schema/Schema.d.ts.map +1 -0
- package/dist/src/database/schema/Schema.js +151 -0
- package/dist/src/database/schema/Schema.js.map +1 -0
- package/dist/src/database/schema/grammar/Grammar.d.ts +35 -0
- package/dist/src/database/schema/grammar/Grammar.d.ts.map +1 -0
- package/dist/src/database/schema/grammar/Grammar.js +36 -0
- package/dist/src/database/schema/grammar/Grammar.js.map +1 -0
- package/dist/src/database/schema/grammar/MySQLGrammar.d.ts +29 -0
- package/dist/src/database/schema/grammar/MySQLGrammar.d.ts.map +1 -0
- package/dist/src/database/schema/grammar/MySQLGrammar.js +199 -0
- package/dist/src/database/schema/grammar/MySQLGrammar.js.map +1 -0
- package/dist/src/database/schema/grammar/PostgresGrammar.d.ts +29 -0
- package/dist/src/database/schema/grammar/PostgresGrammar.d.ts.map +1 -0
- package/dist/src/database/schema/grammar/PostgresGrammar.js +233 -0
- package/dist/src/database/schema/grammar/PostgresGrammar.js.map +1 -0
- package/dist/src/database/schema/index.d.ts +9 -0
- package/dist/src/database/schema/index.d.ts.map +1 -0
- package/dist/src/database/schema/index.js +12 -0
- package/dist/src/database/schema/index.js.map +1 -0
- package/dist/src/database/types.d.ts +8 -0
- package/dist/src/database/types.d.ts.map +1 -1
- package/dist/src/database/types.js +3 -1
- package/dist/src/database/types.js.map +1 -1
- package/docs/content/cli.md +4 -1
- package/docs/content/configuration.md +6 -0
- package/docs/content/database.md +137 -0
- package/package.json +1 -1
- package/src/app/config.ts +2 -0
- package/src/database/common.ts +51 -0
- package/src/database/factory.ts +59 -0
- package/src/database/index.ts +2 -0
- package/src/database/migration/MigrationResetCommand.ts +6 -22
- package/src/database/migration/MigrationRunCommand.ts +2 -0
- package/src/database/migration/create/MigrationCreateCommand.ts +42 -12
- package/src/database/migration/create/builder-regenerator.ts +294 -0
- package/src/database/migration/create/comparator.ts +34 -4
- package/src/database/migration/create/db-reader.ts +60 -9
- package/src/database/migration/create/ddl-generator.ts +45 -212
- package/src/database/migration/create/entity-reader.ts +46 -5
- package/src/database/migration/create/file-generator.ts +5 -1
- package/src/database/migration/create/schema-model.ts +6 -0
- package/src/database/mysql.ts +7 -15
- package/src/database/postgres.ts +3 -17
- package/src/database/schema/AlterBlueprint.ts +92 -0
- package/src/database/schema/Blueprint.ts +43 -0
- package/src/database/schema/BlueprintBase.ts +425 -0
- package/src/database/schema/ColumnDefinition.ts +131 -0
- package/src/database/schema/Schema.ts +167 -0
- package/src/database/schema/grammar/Grammar.ts +62 -0
- package/src/database/schema/grammar/MySQLGrammar.ts +206 -0
- package/src/database/schema/grammar/PostgresGrammar.ts +243 -0
- package/src/database/schema/index.ts +8 -0
- package/src/database/types.ts +6 -0
|
@@ -46,8 +46,12 @@ async function readMySQLTable(db, tableName) {
|
|
|
46
46
|
const columns = await readMySQLColumns(db, tableName);
|
|
47
47
|
if (columns.length === 0)
|
|
48
48
|
return null;
|
|
49
|
-
const
|
|
49
|
+
const allIndexes = await readMySQLIndexes(db, tableName);
|
|
50
50
|
const foreignKeys = await readMySQLForeignKeys(db, tableName);
|
|
51
|
+
// MySQL auto-creates an index for FK columns (same name as the FK) if no covering index exists.
|
|
52
|
+
// Filter those out so they don't show up as spurious added/removed-index diffs.
|
|
53
|
+
const fkNames = new Set(foreignKeys.map(__assignType(fk => fk.name, ['fk', '', 'P"2!"/"'])));
|
|
54
|
+
const indexes = allIndexes.filter(__assignType(idx => !fkNames.has(idx.name), ['idx', '', 'P"2!"/"']));
|
|
51
55
|
return { name: tableName, columns, indexes, foreignKeys };
|
|
52
56
|
}
|
|
53
57
|
readMySQLTable.__type = [() => common_1.BaseDatabase, 'db', 'tableName', () => __ΩTableSchema, 'readMySQLTable', 'PP7!2"&2#Pn$,J`/%'];
|
|
@@ -61,23 +65,28 @@ async function readMySQLColumns(db, tableName) {
|
|
|
61
65
|
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = ${tableName}
|
|
62
66
|
ORDER BY ORDINAL_POSITION`);
|
|
63
67
|
return rows.map(__assignType(row => {
|
|
64
|
-
|
|
68
|
+
// Original-case COLUMN_TYPE is needed for enum value extraction (enum labels are
|
|
69
|
+
// case-sensitive); a lowercased copy is used for everything else (type/unsigned detection).
|
|
70
|
+
const columnTypeRaw = row.COLUMN_TYPE || '';
|
|
71
|
+
const columnType = columnTypeRaw.toLowerCase();
|
|
65
72
|
const dataType = (row.DATA_TYPE || '').toLowerCase();
|
|
66
73
|
const extra = (row.EXTRA || '').toLowerCase();
|
|
67
74
|
const col = {
|
|
68
75
|
name: row.COLUMN_NAME,
|
|
69
76
|
type: normalizeMySQLType(dataType, columnType),
|
|
70
77
|
size: inferMySQLSize(dataType, columnType, row.CHARACTER_MAXIMUM_LENGTH, row.NUMERIC_PRECISION),
|
|
71
|
-
|
|
78
|
+
// Scale is only meaningful for decimal/numeric. MySQL reports NUMERIC_SCALE=0
|
|
79
|
+
// for ints, which would cause spurious typeChanged diffs against entity-reader output.
|
|
80
|
+
scale: (dataType === 'decimal' || dataType === 'numeric') && row.NUMERIC_SCALE != null ? Number(row.NUMERIC_SCALE) : undefined,
|
|
72
81
|
unsigned: columnType.includes('unsigned'),
|
|
73
82
|
nullable: row.IS_NULLABLE === 'YES',
|
|
74
83
|
autoIncrement: extra.includes('auto_increment'),
|
|
75
84
|
isPrimaryKey: row.COLUMN_KEY === 'PRI',
|
|
76
85
|
ordinalPosition: Number(row.ORDINAL_POSITION)
|
|
77
86
|
};
|
|
78
|
-
// Parse enum values
|
|
87
|
+
// Parse enum values from the original-case COLUMN_TYPE to preserve label casing.
|
|
79
88
|
if (dataType === 'enum') {
|
|
80
|
-
col.enumValues = parseEnumValues(
|
|
89
|
+
col.enumValues = parseEnumValues(columnTypeRaw);
|
|
81
90
|
}
|
|
82
91
|
// Default value
|
|
83
92
|
if (row.COLUMN_DEFAULT != null && !col.autoIncrement) {
|
|
@@ -105,10 +114,18 @@ async function readMySQLIndexes(db, tableName) {
|
|
|
105
114
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
106
115
|
const rows = await db.rawQuery(`SHOW INDEX FROM ${(0, dialect_1.quoteId)('mysql', tableName)}`);
|
|
107
116
|
const indexMap = (Map.Ω = [['&'], [() => __ΩIndexSchema, 'schema', 'seq', 'name', 'columnsBySeq', 'Pn!4"P\'4#&4$MF4%M']], new Map());
|
|
117
|
+
// Functional / expression indexes (e.g. multi-valued `CAST(json AS ... ARRAY)`) report a NULL
|
|
118
|
+
// Column_name with an Expression instead. They can't be expressed via entity decorators, so we
|
|
119
|
+
// exclude them entirely rather than emit a half-read (and spuriously dropped) index.
|
|
120
|
+
const expressionIndexes = (Set.Ω = [['&']], new Set());
|
|
108
121
|
for (const row of rows) {
|
|
109
122
|
const keyName = row.Key_name;
|
|
110
123
|
if (keyName === 'PRIMARY')
|
|
111
124
|
continue; // PK is handled separately
|
|
125
|
+
if (row.Column_name == null) {
|
|
126
|
+
expressionIndexes.add(keyName);
|
|
127
|
+
continue;
|
|
128
|
+
}
|
|
112
129
|
if (!indexMap.has(keyName)) {
|
|
113
130
|
indexMap.set(keyName, {
|
|
114
131
|
schema: {
|
|
@@ -122,6 +139,8 @@ async function readMySQLIndexes(db, tableName) {
|
|
|
122
139
|
}
|
|
123
140
|
indexMap.get(keyName).columnsBySeq.push({ seq: Number(row.Seq_in_index), name: row.Column_name });
|
|
124
141
|
}
|
|
142
|
+
for (const keyName of expressionIndexes)
|
|
143
|
+
indexMap.delete(keyName);
|
|
125
144
|
// Sort columns by Seq_in_index to ensure correct multi-column index order
|
|
126
145
|
for (const entry of indexMap.values()) {
|
|
127
146
|
entry.columnsBySeq.sort(__assignType((a, b) => a.seq - b.seq, ['a', 'b', '', 'P"2!"2""/#']));
|
|
@@ -204,7 +223,7 @@ async function readPostgresColumns(db, tableName, pgSchema = 'public') {
|
|
|
204
223
|
name: row.column_name,
|
|
205
224
|
type: dataType,
|
|
206
225
|
size: inferPostgresSize(dataType, row.character_maximum_length, row.numeric_precision),
|
|
207
|
-
scale: row.numeric_scale != null ? Number(row.numeric_scale) : undefined,
|
|
226
|
+
scale: (dataType === 'decimal' || dataType === 'numeric') && row.numeric_scale != null ? Number(row.numeric_scale) : undefined,
|
|
208
227
|
unsigned: false,
|
|
209
228
|
nullable: row.is_nullable === 'YES',
|
|
210
229
|
autoIncrement: isSerial,
|
|
@@ -294,12 +313,47 @@ async function readPostgresIndexes(db, tableName, pgSchema = 'public') {
|
|
|
294
313
|
GROUP BY i.relname, ix.indisunique`);
|
|
295
314
|
return rows.map(__assignType(row => ({
|
|
296
315
|
name: row.index_name,
|
|
297
|
-
columns:
|
|
316
|
+
columns: parsePgTextArray(row.columns),
|
|
298
317
|
unique: row.is_unique,
|
|
299
318
|
spatial: false
|
|
300
319
|
}), ['row', '', 'P"2!"/"']));
|
|
301
320
|
}
|
|
302
321
|
readPostgresIndexes.__type = [() => common_1.BaseDatabase, 'db', 'tableName', 'pgSchema', () => "public", () => __ΩIndexSchema, 'readPostgresIndexes', 'PP7!2"&2#&2$>%n&F`/\''];
|
|
322
|
+
/** Parse a Postgres text array literal like `{a,b,"c d"}` into a JS string array.
|
|
323
|
+
* Accepts already-parsed arrays unchanged. */
|
|
324
|
+
function parsePgTextArray(value) {
|
|
325
|
+
if (Array.isArray(value))
|
|
326
|
+
return value;
|
|
327
|
+
if (typeof value !== 'string')
|
|
328
|
+
return [];
|
|
329
|
+
const s = value.trim();
|
|
330
|
+
if (!s.startsWith('{') || !s.endsWith('}'))
|
|
331
|
+
return [s];
|
|
332
|
+
const inner = s.slice(1, -1);
|
|
333
|
+
if (inner === '')
|
|
334
|
+
return [];
|
|
335
|
+
// Split on commas not inside quotes; strip surrounding double quotes if present
|
|
336
|
+
const out = [];
|
|
337
|
+
let cur = '';
|
|
338
|
+
let inQuote = false;
|
|
339
|
+
for (let i = 0; i < inner.length; i++) {
|
|
340
|
+
const ch = inner[i];
|
|
341
|
+
if (ch === '"' && inner[i - 1] !== '\\') {
|
|
342
|
+
inQuote = !inQuote;
|
|
343
|
+
continue;
|
|
344
|
+
}
|
|
345
|
+
if (ch === ',' && !inQuote) {
|
|
346
|
+
out.push(cur);
|
|
347
|
+
cur = '';
|
|
348
|
+
continue;
|
|
349
|
+
}
|
|
350
|
+
cur += ch;
|
|
351
|
+
}
|
|
352
|
+
if (cur.length > 0 || out.length > 0)
|
|
353
|
+
out.push(cur);
|
|
354
|
+
return out;
|
|
355
|
+
}
|
|
356
|
+
parsePgTextArray.__type = ['value', 'parsePgTextArray', 'P#2!&F/"'];
|
|
303
357
|
async function readPostgresForeignKeys(db, tableName, pgSchema = 'public') {
|
|
304
358
|
// Use pg_constraint to correctly pair multi-column FK columns via conkey/confkey arrays
|
|
305
359
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -331,9 +385,9 @@ async function readPostgresForeignKeys(db, tableName, pgSchema = 'public') {
|
|
|
331
385
|
GROUP BY c.conname, ref_cls.relname, c.confdeltype, c.confupdtype`);
|
|
332
386
|
return rows.map(__assignType(row => ({
|
|
333
387
|
name: row.constraint_name,
|
|
334
|
-
columns:
|
|
388
|
+
columns: parsePgTextArray(row.columns),
|
|
335
389
|
referencedTable: row.referenced_table,
|
|
336
|
-
referencedColumns:
|
|
390
|
+
referencedColumns: parsePgTextArray(row.referenced_columns),
|
|
337
391
|
onDelete: (row.delete_rule || 'RESTRICT').toUpperCase(),
|
|
338
392
|
onUpdate: (row.update_rule || 'RESTRICT').toUpperCase()
|
|
339
393
|
}), ['row', '', 'P"2!"/"']));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db-reader.js","sourceRoot":"","sources":["../../../../../src/database/migration/create/db-reader.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"db-reader.js","sourceRoot":"","sources":["../../../../../src/database/migration/create/db-reader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ddl-generator.d.ts","sourceRoot":"","sources":["../../../../../src/database/migration/create/ddl-generator.ts"],"names":[],"mappings":"AACA,OAAO,EAA4E,UAAU,EAA0B,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"ddl-generator.d.ts","sourceRoot":"","sources":["../../../../../src/database/migration/create/ddl-generator.ts"],"names":[],"mappings":"AACA,OAAO,EAA4E,UAAU,EAA0B,MAAM,gBAAgB,CAAC;AAE9I,eAAO,MAAM,cAAc,eAAiB,CAAC;AAsB7C,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,EAAE,CA8ItD"}
|
|
@@ -6,11 +6,30 @@ function __assignType(fn, args) {
|
|
|
6
6
|
fn.__type = args;
|
|
7
7
|
return fn;
|
|
8
8
|
}
|
|
9
|
-
const
|
|
9
|
+
const schema_1 = require("../../schema");
|
|
10
10
|
/*@ts-ignore*/
|
|
11
|
-
var { __Ω
|
|
12
|
-
const VALID_FK_ACTIONS = new Set(['RESTRICT', 'CASCADE', 'SET NULL', 'SET DEFAULT', 'NO ACTION']);
|
|
11
|
+
var { __ΩDialect, __ΩSchemaDiff, __ΩTableDiff, __ΩTableSchema, __ΩIndexSchema, __ΩForeignKeySchema, __ΩColumnSchema } = require('./schema-model');
|
|
13
12
|
exports.COMMENT_PREFIX = '\x00comment:';
|
|
13
|
+
// --- Grammar delegation ---
|
|
14
|
+
//
|
|
15
|
+
// SQL emission lives in src/database/schema/grammar/. This module owns the high-level
|
|
16
|
+
// diff orchestration (statement ordering, deferred FKs, PG enum dedup, MySQL column
|
|
17
|
+
// reordering, etc.). The thin helpers below delegate to dialect-specific Grammars.
|
|
18
|
+
const grammarCache = (Map.Ω = [['&'], [() => schema_1.Grammar, 'P7!']], new Map());
|
|
19
|
+
function getGrammar(dialect, pgSchema) {
|
|
20
|
+
const key = `${dialect}:${pgSchema ?? 'public'}`;
|
|
21
|
+
let g = grammarCache.get(key);
|
|
22
|
+
if (!g) {
|
|
23
|
+
g = dialect === 'mysql' ? new schema_1.MySQLGrammar(pgSchema ?? 'public') : new schema_1.PostgresGrammar(pgSchema ?? 'public');
|
|
24
|
+
grammarCache.set(key, g);
|
|
25
|
+
}
|
|
26
|
+
return g;
|
|
27
|
+
}
|
|
28
|
+
getGrammar.__type = [() => __ΩDialect, 'dialect', 'pgSchema', () => schema_1.Grammar, 'getGrammar', 'Pn!2"&2#8P7$/%'];
|
|
29
|
+
function getPgGrammar(pgSchema) {
|
|
30
|
+
return getGrammar('postgres', pgSchema);
|
|
31
|
+
}
|
|
32
|
+
getPgGrammar.__type = ['pgSchema', () => schema_1.PostgresGrammar, 'getPgGrammar', 'P&2!8P7"/#'];
|
|
14
33
|
function generateDDL(diff) {
|
|
15
34
|
const statements = [];
|
|
16
35
|
const { dialect, pgSchema } = diff;
|
|
@@ -167,6 +186,10 @@ function generateMySQLTableDDL(diff) {
|
|
|
167
186
|
for (const idx of diff.removedIndexes) {
|
|
168
187
|
stmts.push(`ALTER TABLE ${t} DROP INDEX ${q('mysql', idx.name)}`);
|
|
169
188
|
}
|
|
189
|
+
// 2b. Rename indexes (after drops, so a freed-up name can be reused)
|
|
190
|
+
for (const r of diff.renamedIndexes) {
|
|
191
|
+
stmts.push(`ALTER TABLE ${t} RENAME INDEX ${q('mysql', r.from)} TO ${q('mysql', r.to)}`);
|
|
192
|
+
}
|
|
170
193
|
// 3. Drop PK if changed (only if there was an existing PK to drop)
|
|
171
194
|
// Track columns that had AUTO_INCREMENT temporarily stripped so we can restore it after ADD PK
|
|
172
195
|
const autoIncStrippedForPKDrop = [];
|
|
@@ -332,6 +355,10 @@ function generatePostgresTableDDL(diff, pgSchema, globalEnumTypes) {
|
|
|
332
355
|
for (const idx of diff.removedIndexes) {
|
|
333
356
|
stmts.push(`DROP INDEX ${qTable('postgres', idx.name, pgSchema)}`);
|
|
334
357
|
}
|
|
358
|
+
// 4b. Rename indexes (after drops, so a freed-up name can be reused)
|
|
359
|
+
for (const r of diff.renamedIndexes) {
|
|
360
|
+
stmts.push(`ALTER INDEX ${qTable('postgres', r.from, pgSchema)} RENAME TO ${q('postgres', r.to)}`);
|
|
361
|
+
}
|
|
335
362
|
// 5. Drop PK if changed (only if there was an existing PK to drop)
|
|
336
363
|
if (diff.primaryKeyChanged && diff.oldPrimaryKey && diff.oldPrimaryKey.length > 0) {
|
|
337
364
|
const constraintName = diff.oldPrimaryKeyConstraintName ?? `${diff.tableName}_pkey`;
|
|
@@ -462,210 +489,32 @@ function generatePostgresTableDDL(diff, pgSchema, globalEnumTypes) {
|
|
|
462
489
|
generatePostgresTableDDL.__type = [() => __ΩTableDiff, 'diff', 'pgSchema', 'globalEnumTypes', 'generatePostgresTableDDL', 'Pn!2"&2#8&D2$8&F/%'];
|
|
463
490
|
// --- Shared helpers ---
|
|
464
491
|
function createTable(table, dialect, pgSchema) {
|
|
465
|
-
|
|
466
|
-
const pkCols = table.columns.filter(__assignType(c => c.isPrimaryKey, ['c', '', 'P"2!"/"'])).map(__assignType(c => c.name, ['c', '', 'P"2!"/"']));
|
|
467
|
-
for (const col of table.columns) {
|
|
468
|
-
if (dialect === 'mysql') {
|
|
469
|
-
lines.push(` ${mysqlColumnDef(col)}`);
|
|
470
|
-
}
|
|
471
|
-
else {
|
|
472
|
-
lines.push(` ${pgColumnDef(col, pgSchema)}`);
|
|
473
|
-
}
|
|
474
|
-
}
|
|
475
|
-
if (pkCols.length > 0) {
|
|
476
|
-
const quoted = pkCols.map(__assignType(c => q(dialect, c), ['c', '', 'P"2!"/"'])).join(', ');
|
|
477
|
-
lines.push(` PRIMARY KEY (${quoted})`);
|
|
478
|
-
}
|
|
479
|
-
return `CREATE TABLE ${qTable(dialect, table.name, pgSchema)} (\n${lines.join(',\n')}\n)`;
|
|
492
|
+
return getGrammar(dialect, pgSchema).createTable(table);
|
|
480
493
|
}
|
|
481
494
|
createTable.__type = [() => __ΩTableSchema, 'table', () => __ΩDialect, 'dialect', 'pgSchema', 'createTable', 'Pn!2"n#2$&2%8&/&'];
|
|
482
495
|
function createIndex(tableName, idx, dialect, pgSchema) {
|
|
483
|
-
|
|
484
|
-
const spatial = idx.spatial && dialect === 'mysql' ? 'SPATIAL ' : '';
|
|
485
|
-
const cols = idx.columns.map(__assignType(c => q(dialect, c), ['c', '', 'P"2!"/"'])).join(', ');
|
|
486
|
-
return `CREATE ${spatial}${unique}INDEX ${q(dialect, idx.name)} ON ${qTable(dialect, tableName, pgSchema)} (${cols})`;
|
|
496
|
+
return getGrammar(dialect, pgSchema).createIndex(tableName, idx);
|
|
487
497
|
}
|
|
488
498
|
createIndex.__type = ['tableName', () => __ΩIndexSchema, 'idx', () => __ΩDialect, 'dialect', 'pgSchema', 'createIndex', 'P&2!n"2#n$2%&2&8&/\''];
|
|
489
499
|
function addForeignKey(tableName, fk, dialect, pgSchema) {
|
|
490
|
-
|
|
491
|
-
const refCols = fk.referencedColumns.map(__assignType(c => q(dialect, c), ['c', '', 'P"2!"/"'])).join(', ');
|
|
492
|
-
const onDelete = validateFkAction(fk.onDelete, dialect);
|
|
493
|
-
const onUpdate = validateFkAction(fk.onUpdate, dialect);
|
|
494
|
-
return (`ALTER TABLE ${qTable(dialect, tableName, pgSchema)} ADD CONSTRAINT ${q(dialect, fk.name)} ` +
|
|
495
|
-
`FOREIGN KEY (${cols}) REFERENCES ${qTable(dialect, fk.referencedTable, pgSchema)} (${refCols}) ` +
|
|
496
|
-
`ON DELETE ${onDelete} ON UPDATE ${onUpdate}`);
|
|
500
|
+
return getGrammar(dialect, pgSchema).addForeignKey(tableName, fk);
|
|
497
501
|
}
|
|
498
502
|
addForeignKey.__type = ['tableName', () => __ΩForeignKeySchema, 'fk', () => __ΩDialect, 'dialect', 'pgSchema', 'addForeignKey', 'P&2!n"2#n$2%&2&8&/\''];
|
|
499
|
-
function validateFkAction(action, dialect) {
|
|
500
|
-
const upper = action.toUpperCase();
|
|
501
|
-
if (!VALID_FK_ACTIONS.has(upper)) {
|
|
502
|
-
throw new Error(`Invalid foreign key action: '${action}'`);
|
|
503
|
-
}
|
|
504
|
-
if (upper === 'SET DEFAULT' && dialect === 'mysql') {
|
|
505
|
-
throw new Error(`Foreign key action 'SET DEFAULT' is not supported by MySQL/InnoDB`);
|
|
506
|
-
}
|
|
507
|
-
return upper;
|
|
508
|
-
}
|
|
509
|
-
validateFkAction.__type = ['action', () => __ΩDialect, 'dialect', 'validateFkAction', 'P&2!n"2#&/$'];
|
|
510
503
|
function createEnumType(typeName, values, pgSchema) {
|
|
511
|
-
|
|
512
|
-
const vals = values.map(__assignType(v => `'${escapeStr(v)}'`, ['v', '', 'P"2!"/"'])).join(', ');
|
|
513
|
-
const schemaFilter = pgSchema && pgSchema !== 'public' ? ` AND typnamespace = (SELECT oid FROM pg_namespace WHERE nspname = '${escapeStr(pgSchema)}')` : '';
|
|
514
|
-
return [
|
|
515
|
-
[
|
|
516
|
-
`DO $$ BEGIN`,
|
|
517
|
-
`IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = '${escapeStr(typeName)}'${schemaFilter}) THEN`,
|
|
518
|
-
` CREATE TYPE ${qualifiedName} AS ENUM (${vals});`,
|
|
519
|
-
`END IF;`,
|
|
520
|
-
`END $$`
|
|
521
|
-
].join('\n'),
|
|
522
|
-
`CREATE CAST (text AS ${qualifiedName}) WITH INOUT AS IMPLICIT`
|
|
523
|
-
];
|
|
504
|
+
return getPgGrammar(pgSchema).createEnumType(typeName, values);
|
|
524
505
|
}
|
|
525
506
|
createEnumType.__type = ['typeName', 'values', 'pgSchema', 'createEnumType', 'P&2!&F2"&2#8&F/$'];
|
|
526
|
-
// ---
|
|
507
|
+
// --- Column definition (delegated to Grammar) ---
|
|
527
508
|
function mysqlColumnDef(col) {
|
|
528
|
-
|
|
529
|
-
if (col.unsigned)
|
|
530
|
-
def += ' UNSIGNED';
|
|
531
|
-
if (!col.nullable)
|
|
532
|
-
def += ' NOT NULL';
|
|
533
|
-
if (col.autoIncrement)
|
|
534
|
-
def += ' AUTO_INCREMENT';
|
|
535
|
-
if (col.defaultExpression) {
|
|
536
|
-
def += ` DEFAULT ${col.defaultExpression}`;
|
|
537
|
-
}
|
|
538
|
-
else if (col.defaultValue !== undefined) {
|
|
539
|
-
def += ` DEFAULT '${escapeStr(String(col.defaultValue), 'mysql')}'`;
|
|
540
|
-
}
|
|
541
|
-
if (col.onUpdateExpression) {
|
|
542
|
-
def += ` ON UPDATE ${col.onUpdateExpression}`;
|
|
543
|
-
}
|
|
544
|
-
return def;
|
|
509
|
+
return getGrammar('mysql').columnDef(col);
|
|
545
510
|
}
|
|
546
511
|
mysqlColumnDef.__type = [() => __ΩColumnSchema, 'col', 'mysqlColumnDef', 'Pn!2"&/#'];
|
|
547
|
-
function mysqlTypeDef(col) {
|
|
548
|
-
switch (col.type) {
|
|
549
|
-
case 'varchar':
|
|
550
|
-
return `VARCHAR(${col.size || 255})`;
|
|
551
|
-
case 'char':
|
|
552
|
-
return `CHAR(${col.size || 1})`;
|
|
553
|
-
case 'tinyint':
|
|
554
|
-
return col.size === 1 ? 'TINYINT(1)' : 'TINYINT';
|
|
555
|
-
case 'smallint':
|
|
556
|
-
return 'SMALLINT';
|
|
557
|
-
case 'int':
|
|
558
|
-
return 'INT';
|
|
559
|
-
case 'bigint':
|
|
560
|
-
return 'BIGINT';
|
|
561
|
-
case 'float':
|
|
562
|
-
return 'FLOAT';
|
|
563
|
-
case 'double':
|
|
564
|
-
return 'DOUBLE';
|
|
565
|
-
case 'decimal':
|
|
566
|
-
if (col.size === undefined)
|
|
567
|
-
return 'DECIMAL';
|
|
568
|
-
return col.scale !== undefined ? `DECIMAL(${col.size},${col.scale})` : `DECIMAL(${col.size})`;
|
|
569
|
-
case 'boolean':
|
|
570
|
-
return 'TINYINT(1)';
|
|
571
|
-
case 'date':
|
|
572
|
-
return 'DATE';
|
|
573
|
-
case 'datetime':
|
|
574
|
-
return 'DATETIME';
|
|
575
|
-
case 'timestamp':
|
|
576
|
-
return 'TIMESTAMP';
|
|
577
|
-
case 'text':
|
|
578
|
-
return 'TEXT';
|
|
579
|
-
case 'binary':
|
|
580
|
-
return `BINARY(${col.size || 16})`;
|
|
581
|
-
case 'blob':
|
|
582
|
-
return 'BLOB';
|
|
583
|
-
case 'json':
|
|
584
|
-
return 'JSON';
|
|
585
|
-
case 'point':
|
|
586
|
-
return 'POINT';
|
|
587
|
-
case 'enum':
|
|
588
|
-
if (col.enumValues) {
|
|
589
|
-
const vals = col.enumValues.map(__assignType(v => `'${escapeStr(v, 'mysql')}'`, ['v', '', 'P"2!"/"'])).join(',');
|
|
590
|
-
return `ENUM(${vals})`;
|
|
591
|
-
}
|
|
592
|
-
return 'VARCHAR(255)';
|
|
593
|
-
default:
|
|
594
|
-
return col.type.toUpperCase();
|
|
595
|
-
}
|
|
596
|
-
}
|
|
597
|
-
mysqlTypeDef.__type = [() => __ΩColumnSchema, 'col', 'mysqlTypeDef', 'Pn!2"&/#'];
|
|
598
|
-
// --- PostgreSQL column definition ---
|
|
599
512
|
function pgColumnDef(col, pgSchema) {
|
|
600
|
-
|
|
601
|
-
if (col.autoIncrement) {
|
|
602
|
-
// Use SERIAL/BIGSERIAL for auto-increment
|
|
603
|
-
typeDef = col.type === 'bigint' ? 'BIGSERIAL' : 'SERIAL';
|
|
604
|
-
}
|
|
605
|
-
else {
|
|
606
|
-
typeDef = pgTypeDef(col, pgSchema);
|
|
607
|
-
}
|
|
608
|
-
let def = `${q('postgres', col.name)} ${typeDef}`;
|
|
609
|
-
if (!col.nullable && !col.autoIncrement)
|
|
610
|
-
def += ' NOT NULL';
|
|
611
|
-
if (!col.autoIncrement) {
|
|
612
|
-
if (col.defaultExpression) {
|
|
613
|
-
def += ` DEFAULT ${col.defaultExpression}`;
|
|
614
|
-
}
|
|
615
|
-
else if (col.defaultValue !== undefined) {
|
|
616
|
-
def += ` DEFAULT '${escapeStr(String(col.defaultValue))}'`;
|
|
617
|
-
}
|
|
618
|
-
}
|
|
619
|
-
return def;
|
|
513
|
+
return getGrammar('postgres', pgSchema).columnDef(col);
|
|
620
514
|
}
|
|
621
515
|
pgColumnDef.__type = [() => __ΩColumnSchema, 'col', 'pgSchema', 'pgColumnDef', 'Pn!2"&2#8&/$'];
|
|
622
516
|
function pgTypeDef(col, pgSchema) {
|
|
623
|
-
|
|
624
|
-
case 'varchar':
|
|
625
|
-
return col.size ? `VARCHAR(${col.size})` : 'VARCHAR';
|
|
626
|
-
case 'char':
|
|
627
|
-
return `CHAR(${col.size || 1})`;
|
|
628
|
-
case 'smallint':
|
|
629
|
-
return 'SMALLINT';
|
|
630
|
-
case 'int':
|
|
631
|
-
case 'integer':
|
|
632
|
-
return 'INTEGER';
|
|
633
|
-
case 'bigint':
|
|
634
|
-
return 'BIGINT';
|
|
635
|
-
case 'real':
|
|
636
|
-
case 'float':
|
|
637
|
-
return 'REAL';
|
|
638
|
-
case 'double precision':
|
|
639
|
-
case 'double':
|
|
640
|
-
return 'DOUBLE PRECISION';
|
|
641
|
-
case 'decimal':
|
|
642
|
-
case 'numeric':
|
|
643
|
-
if (col.size === undefined)
|
|
644
|
-
return 'NUMERIC';
|
|
645
|
-
return col.scale !== undefined ? `NUMERIC(${col.size},${col.scale})` : `NUMERIC(${col.size})`;
|
|
646
|
-
case 'boolean':
|
|
647
|
-
return 'BOOLEAN';
|
|
648
|
-
case 'date':
|
|
649
|
-
return 'DATE';
|
|
650
|
-
case 'timestamp':
|
|
651
|
-
return 'TIMESTAMP';
|
|
652
|
-
case 'timestamptz':
|
|
653
|
-
return 'TIMESTAMPTZ';
|
|
654
|
-
case 'text':
|
|
655
|
-
return 'TEXT';
|
|
656
|
-
case 'bytea':
|
|
657
|
-
return 'BYTEA';
|
|
658
|
-
case 'json':
|
|
659
|
-
return 'JSON';
|
|
660
|
-
case 'jsonb':
|
|
661
|
-
return 'JSONB';
|
|
662
|
-
case 'uuid':
|
|
663
|
-
return 'UUID';
|
|
664
|
-
case 'enum':
|
|
665
|
-
return col.enumTypeName ? qType(col.enumTypeName, pgSchema) : 'TEXT';
|
|
666
|
-
default:
|
|
667
|
-
return col.type.toUpperCase();
|
|
668
|
-
}
|
|
517
|
+
return getPgGrammar(pgSchema).columnType(col);
|
|
669
518
|
}
|
|
670
519
|
pgTypeDef.__type = [() => __ΩColumnSchema, 'col', 'pgSchema', 'pgTypeDef', 'Pn!2"&2#8&/$'];
|
|
671
520
|
// --- AFTER clause helpers (MySQL) ---
|
|
@@ -705,36 +554,25 @@ function findAfterClauseForExisting(colName, diff, dialect) {
|
|
|
705
554
|
}
|
|
706
555
|
findAfterClauseForExisting.__type = ['colName', () => __ΩTableDiff, 'diff', () => __ΩDialect, 'dialect', 'findAfterClauseForExisting', 'P&2!n"2#n$2%&/&'];
|
|
707
556
|
function q(dialect, name) {
|
|
708
|
-
return (
|
|
557
|
+
return getGrammar(dialect).quote(name);
|
|
709
558
|
}
|
|
710
559
|
q.__type = [() => __ΩDialect, 'dialect', 'name', 'q', 'Pn!2"&2#&/$'];
|
|
711
560
|
function qTable(dialect, name, pgSchema) {
|
|
712
|
-
|
|
713
|
-
return `${(0, dialect_1.quoteId)(dialect, pgSchema)}.${(0, dialect_1.quoteId)(dialect, name)}`;
|
|
714
|
-
}
|
|
715
|
-
return (0, dialect_1.quoteId)(dialect, name);
|
|
561
|
+
return getGrammar(dialect, pgSchema).qualifiedTable(name);
|
|
716
562
|
}
|
|
717
563
|
qTable.__type = [() => __ΩDialect, 'dialect', 'name', 'pgSchema', 'qTable', 'Pn!2"&2#&2$8&/%'];
|
|
718
564
|
function qType(typeName, pgSchema) {
|
|
719
|
-
|
|
720
|
-
return `${(0, dialect_1.quoteId)('postgres', pgSchema)}.${(0, dialect_1.quoteId)('postgres', typeName)}`;
|
|
721
|
-
}
|
|
722
|
-
return (0, dialect_1.quoteId)('postgres', typeName);
|
|
565
|
+
return getPgGrammar(pgSchema).qualifiedType(typeName);
|
|
723
566
|
}
|
|
724
567
|
qType.__type = ['typeName', 'pgSchema', 'qType', 'P&2!&2"8&/#'];
|
|
725
568
|
function pgRegclass(name, pgSchema) {
|
|
726
|
-
//
|
|
727
|
-
|
|
728
|
-
return `${(0, dialect_1.quoteId)('postgres', pgSchema)}.${(0, dialect_1.quoteId)('postgres', name)}`;
|
|
729
|
-
}
|
|
730
|
-
return (0, dialect_1.quoteId)('postgres', name);
|
|
569
|
+
// Same form as qualifiedType — used in SQL string literals (quoted identifiers).
|
|
570
|
+
return getPgGrammar(pgSchema).qualifiedType(name);
|
|
731
571
|
}
|
|
732
572
|
pgRegclass.__type = ['name', 'pgSchema', 'pgRegclass', 'P&2!&2"8&/#'];
|
|
733
573
|
function escapeStr(s, dialect) {
|
|
734
|
-
|
|
735
|
-
if (dialect === 'mysql') {
|
|
574
|
+
if (dialect === 'mysql')
|
|
736
575
|
s = s.replace(/\\/g, '\\\\');
|
|
737
|
-
}
|
|
738
576
|
return s.replace(/'/g, "''");
|
|
739
577
|
}
|
|
740
578
|
escapeStr.__type = ['s', () => __ΩDialect, 'dialect', 'escapeStr', 'P&2!n"2#8&/$'];
|