@warlock.js/cascade 4.0.141 → 4.0.143

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 (87) hide show
  1. package/cjs/contracts/database-driver.contract.d.ts +14 -0
  2. package/cjs/contracts/database-driver.contract.d.ts.map +1 -1
  3. package/cjs/drivers/postgres/postgres-driver.d.ts +6 -0
  4. package/cjs/drivers/postgres/postgres-driver.d.ts.map +1 -1
  5. package/cjs/drivers/postgres/postgres-driver.js +8 -1
  6. package/cjs/drivers/postgres/postgres-driver.js.map +1 -1
  7. package/cjs/drivers/postgres/postgres-sql-serializer.d.ts +37 -0
  8. package/cjs/drivers/postgres/postgres-sql-serializer.d.ts.map +1 -0
  9. package/cjs/drivers/postgres/postgres-sql-serializer.js +394 -0
  10. package/cjs/drivers/postgres/postgres-sql-serializer.js.map +1 -0
  11. package/cjs/index.js +1 -1
  12. package/cjs/migration/column-builder.d.ts +14 -4
  13. package/cjs/migration/column-builder.d.ts.map +1 -1
  14. package/cjs/migration/column-builder.js +14 -5
  15. package/cjs/migration/column-builder.js.map +1 -1
  16. package/cjs/migration/column-helpers.d.ts +269 -0
  17. package/cjs/migration/column-helpers.d.ts.map +1 -0
  18. package/cjs/migration/column-helpers.js +384 -0
  19. package/cjs/migration/column-helpers.js.map +1 -0
  20. package/cjs/migration/index.d.ts +1 -0
  21. package/cjs/migration/index.d.ts.map +1 -1
  22. package/cjs/migration/migration-runner.d.ts +32 -1
  23. package/cjs/migration/migration-runner.d.ts.map +1 -1
  24. package/cjs/migration/migration-runner.js +216 -46
  25. package/cjs/migration/migration-runner.js.map +1 -1
  26. package/cjs/migration/migration.d.ts +337 -4
  27. package/cjs/migration/migration.d.ts.map +1 -1
  28. package/cjs/migration/migration.js +331 -4
  29. package/cjs/migration/migration.js.map +1 -1
  30. package/cjs/migration/sql-grammar.d.ts +18 -0
  31. package/cjs/migration/sql-grammar.d.ts.map +1 -0
  32. package/cjs/migration/sql-grammar.js +77 -0
  33. package/cjs/migration/sql-grammar.js.map +1 -0
  34. package/cjs/migration/sql-serializer.d.ts +22 -0
  35. package/cjs/migration/sql-serializer.d.ts.map +1 -0
  36. package/cjs/migration/sql-serializer.js +26 -0
  37. package/cjs/migration/sql-serializer.js.map +1 -0
  38. package/cjs/migration/types.d.ts +13 -0
  39. package/cjs/migration/types.d.ts.map +1 -1
  40. package/cjs/types.d.ts +23 -0
  41. package/cjs/types.d.ts.map +1 -1
  42. package/cjs/writer/database-writer.js +4 -4
  43. package/cjs/writer/database-writer.js.map +1 -1
  44. package/esm/contracts/database-driver.contract.d.ts +14 -0
  45. package/esm/contracts/database-driver.contract.d.ts.map +1 -1
  46. package/esm/drivers/postgres/postgres-driver.d.ts +6 -0
  47. package/esm/drivers/postgres/postgres-driver.d.ts.map +1 -1
  48. package/esm/drivers/postgres/postgres-driver.js +8 -1
  49. package/esm/drivers/postgres/postgres-driver.js.map +1 -1
  50. package/esm/drivers/postgres/postgres-sql-serializer.d.ts +37 -0
  51. package/esm/drivers/postgres/postgres-sql-serializer.d.ts.map +1 -0
  52. package/esm/drivers/postgres/postgres-sql-serializer.js +394 -0
  53. package/esm/drivers/postgres/postgres-sql-serializer.js.map +1 -0
  54. package/esm/index.js +1 -1
  55. package/esm/migration/column-builder.d.ts +14 -4
  56. package/esm/migration/column-builder.d.ts.map +1 -1
  57. package/esm/migration/column-builder.js +14 -5
  58. package/esm/migration/column-builder.js.map +1 -1
  59. package/esm/migration/column-helpers.d.ts +269 -0
  60. package/esm/migration/column-helpers.d.ts.map +1 -0
  61. package/esm/migration/column-helpers.js +384 -0
  62. package/esm/migration/column-helpers.js.map +1 -0
  63. package/esm/migration/index.d.ts +1 -0
  64. package/esm/migration/index.d.ts.map +1 -1
  65. package/esm/migration/migration-runner.d.ts +32 -1
  66. package/esm/migration/migration-runner.d.ts.map +1 -1
  67. package/esm/migration/migration-runner.js +216 -46
  68. package/esm/migration/migration-runner.js.map +1 -1
  69. package/esm/migration/migration.d.ts +337 -4
  70. package/esm/migration/migration.d.ts.map +1 -1
  71. package/esm/migration/migration.js +331 -4
  72. package/esm/migration/migration.js.map +1 -1
  73. package/esm/migration/sql-grammar.d.ts +18 -0
  74. package/esm/migration/sql-grammar.d.ts.map +1 -0
  75. package/esm/migration/sql-grammar.js +77 -0
  76. package/esm/migration/sql-grammar.js.map +1 -0
  77. package/esm/migration/sql-serializer.d.ts +22 -0
  78. package/esm/migration/sql-serializer.d.ts.map +1 -0
  79. package/esm/migration/sql-serializer.js +26 -0
  80. package/esm/migration/sql-serializer.js.map +1 -0
  81. package/esm/migration/types.d.ts +13 -0
  82. package/esm/migration/types.d.ts.map +1 -1
  83. package/esm/types.d.ts +23 -0
  84. package/esm/types.d.ts.map +1 -1
  85. package/esm/writer/database-writer.js +4 -4
  86. package/esm/writer/database-writer.js.map +1 -1
  87. package/package.json +4 -4
@@ -0,0 +1,394 @@
1
+ import {SQLSerializer}from'../../migration/sql-serializer.js';/**
2
+ * PostgreSQL-specific SQL serializer.
3
+ *
4
+ * Converts pending migration operations into valid PostgreSQL DDL statements.
5
+ */
6
+ class PostgresSQLSerializer extends SQLSerializer {
7
+ dialect;
8
+ constructor(dialect) {
9
+ super();
10
+ this.dialect = dialect;
11
+ }
12
+ serialize(operation, table) {
13
+ switch (operation.type) {
14
+ case "createTable":
15
+ return this.createTable(table);
16
+ case "createTableIfNotExists":
17
+ return this.createTableIfNotExists(table);
18
+ case "dropTable":
19
+ return this.dropTable(table);
20
+ case "dropTableIfExists":
21
+ return this.dropTableIfExists(table);
22
+ case "renameTable":
23
+ return this.renameTable(table, operation.payload);
24
+ case "truncateTable":
25
+ return this.truncateTable(table);
26
+ case "addColumn":
27
+ return this.addColumn(table, operation.payload);
28
+ case "dropColumn":
29
+ return this.dropColumn(table, operation.payload);
30
+ case "dropColumns":
31
+ // This is handled via map in serializeAll or loop, but Postgres supports multiple DROP COLUMN
32
+ // For simplicity, we can serialize multiple statements if we want, or handle it here
33
+ // Actually, dropColumns payload is string[]. We can join them.
34
+ return this.dropColumns(table, operation.payload);
35
+ case "renameColumn": {
36
+ const payload = operation.payload;
37
+ return this.renameColumn(table, payload.from, payload.to);
38
+ }
39
+ case "modifyColumn":
40
+ // Modify column might require multiple statements in Postgres (type, nullability, default).
41
+ // SQLSerializer's serialize return is just a string, so we'll separate them by semicolon
42
+ // Or wait, Postgres allows multiple ALTER COLUMN in one ALTER TABLE statement.
43
+ return this.modifyColumn(table, operation.payload);
44
+ case "createIndex":
45
+ return this.createIndex(table, operation.payload);
46
+ case "dropIndex":
47
+ return this.dropIndex(table, operation.payload);
48
+ case "createUniqueIndex": {
49
+ const payload = operation.payload;
50
+ return this.createIndex(table, { columns: payload.columns, name: payload.name, unique: true });
51
+ }
52
+ case "dropUniqueIndex":
53
+ return this.dropIndex(table, operation.payload);
54
+ case "createFullTextIndex": {
55
+ const payload = operation.payload;
56
+ return this.createFullTextIndex(table, payload.columns, payload.options);
57
+ }
58
+ case "dropFullTextIndex":
59
+ return this.dropIndex(table, operation.payload);
60
+ case "createGeoIndex": {
61
+ const payload = operation.payload;
62
+ return this.createGeoIndex(table, payload.column, payload.options);
63
+ }
64
+ case "dropGeoIndex":
65
+ return this.dropIndex(table, `idx_${table}_geo_${operation.payload}`);
66
+ case "createVectorIndex": {
67
+ const payload = operation.payload;
68
+ return this.createVectorIndex(table, payload.column, payload.options);
69
+ }
70
+ case "dropVectorIndex":
71
+ return this.dropIndex(table, `idx_${table}_vector_${operation.payload}`);
72
+ case "createTTLIndex": {
73
+ const payload = operation.payload;
74
+ return this.createTTLIndex(table, payload.column, payload.expireAfterSeconds);
75
+ }
76
+ case "dropTTLIndex":
77
+ return this.dropIndex(table, `idx_${table}_ttl_${operation.payload}`);
78
+ case "addForeignKey":
79
+ return this.addForeignKey(table, operation.payload);
80
+ case "dropForeignKey":
81
+ return this.dropForeignKey(table, operation.payload);
82
+ case "addPrimaryKey":
83
+ return this.addPrimaryKey(table, operation.payload);
84
+ case "dropPrimaryKey":
85
+ return this.dropPrimaryKey(table);
86
+ case "addCheck":
87
+ // addCheck is not natively implemented in MigrationDriverContract but exists in OperationType
88
+ return null;
89
+ case "dropCheck":
90
+ return null;
91
+ case "createTimestamps":
92
+ // createTimestamps needs to inject two columns. We return two statements.
93
+ return this.createTimestamps(table);
94
+ case "rawStatement": {
95
+ const payload = operation.payload;
96
+ // ensure string doesn't end with a semicolon if it's already one statement
97
+ return payload;
98
+ }
99
+ case "setSchemaValidation":
100
+ case "removeSchemaValidation":
101
+ // Not implemented in PostgreSQL
102
+ return null;
103
+ default:
104
+ return null;
105
+ }
106
+ }
107
+ // ============================================================================
108
+ // TABLE OPERATIONS
109
+ // ============================================================================
110
+ createTable(table) {
111
+ const quotedTable = this.dialect.quoteIdentifier(table);
112
+ return `CREATE TABLE ${quotedTable} ()`;
113
+ }
114
+ createTableIfNotExists(table) {
115
+ const quotedTable = this.dialect.quoteIdentifier(table);
116
+ return `CREATE TABLE IF NOT EXISTS ${quotedTable} ()`;
117
+ }
118
+ dropTable(table) {
119
+ const quotedTable = this.dialect.quoteIdentifier(table);
120
+ return `DROP TABLE ${quotedTable} CASCADE`;
121
+ }
122
+ dropTableIfExists(table) {
123
+ const quotedTable = this.dialect.quoteIdentifier(table);
124
+ return `DROP TABLE IF EXISTS ${quotedTable} CASCADE`;
125
+ }
126
+ renameTable(from, to) {
127
+ const quotedFrom = this.dialect.quoteIdentifier(from);
128
+ const quotedTo = this.dialect.quoteIdentifier(to);
129
+ return `ALTER TABLE ${quotedFrom} RENAME TO ${quotedTo}`;
130
+ }
131
+ truncateTable(table) {
132
+ const quotedTable = this.dialect.quoteIdentifier(table);
133
+ return `TRUNCATE TABLE ${quotedTable}`;
134
+ }
135
+ // ============================================================================
136
+ // COLUMN OPERATIONS
137
+ // ============================================================================
138
+ addColumn(table, column) {
139
+ const quotedTable = this.dialect.quoteIdentifier(table);
140
+ const quotedColumn = this.dialect.quoteIdentifier(column.name);
141
+ let sqlType;
142
+ if (column.autoIncrement) {
143
+ if (column.type === "bigInteger") {
144
+ sqlType = "BIGSERIAL";
145
+ }
146
+ else {
147
+ sqlType = "SERIAL";
148
+ }
149
+ }
150
+ else {
151
+ sqlType = this.dialect.getSqlType(column.type, {
152
+ length: column.length,
153
+ precision: column.precision,
154
+ scale: column.scale,
155
+ dimensions: column.dimensions,
156
+ });
157
+ }
158
+ let sql = `ALTER TABLE ${quotedTable} ADD COLUMN ${quotedColumn} ${sqlType}`;
159
+ if (column.generated) {
160
+ sql += ` GENERATED ALWAYS AS (${column.generated.expression})`;
161
+ if (column.generated.stored) {
162
+ sql += " STORED";
163
+ }
164
+ }
165
+ else {
166
+ if (!column.autoIncrement && column.nullable === false) {
167
+ sql += " NOT NULL";
168
+ }
169
+ if (column.defaultValue !== undefined) {
170
+ if (typeof column.defaultValue === "object" &&
171
+ column.defaultValue !== null &&
172
+ column.defaultValue.__type === "CURRENT_TIMESTAMP") {
173
+ sql += " DEFAULT NOW()";
174
+ }
175
+ else if (column.isRawDefault === false) {
176
+ const escaped = String(column.defaultValue).replace(/'/g, "''");
177
+ sql += ` DEFAULT '${escaped}'`;
178
+ }
179
+ else if (typeof column.defaultValue === "boolean") {
180
+ sql += ` DEFAULT ${column.defaultValue ? "TRUE" : "FALSE"}`;
181
+ }
182
+ else if (typeof column.defaultValue === "number") {
183
+ sql += ` DEFAULT ${column.defaultValue}`;
184
+ }
185
+ else {
186
+ sql += ` DEFAULT ${column.defaultValue}`; // raw default
187
+ }
188
+ }
189
+ if (column.primary) {
190
+ sql += " PRIMARY KEY";
191
+ }
192
+ if (column.unique) {
193
+ sql += " UNIQUE";
194
+ }
195
+ }
196
+ return sql;
197
+ }
198
+ dropColumn(table, column) {
199
+ const quotedTable = this.dialect.quoteIdentifier(table);
200
+ const quotedColumn = this.dialect.quoteIdentifier(column);
201
+ return `ALTER TABLE ${quotedTable} DROP COLUMN ${quotedColumn}`;
202
+ }
203
+ dropColumns(table, columns) {
204
+ const quotedTable = this.dialect.quoteIdentifier(table);
205
+ const drops = columns.map((col) => `DROP COLUMN ${this.dialect.quoteIdentifier(col)}`).join(", ");
206
+ return `ALTER TABLE ${quotedTable} ${drops}`;
207
+ }
208
+ renameColumn(table, from, to) {
209
+ const quotedTable = this.dialect.quoteIdentifier(table);
210
+ const quotedFrom = this.dialect.quoteIdentifier(from);
211
+ const quotedTo = this.dialect.quoteIdentifier(to);
212
+ return `ALTER TABLE ${quotedTable} RENAME COLUMN ${quotedFrom} TO ${quotedTo}`;
213
+ }
214
+ modifyColumn(table, column) {
215
+ const quotedTable = this.dialect.quoteIdentifier(table);
216
+ const quotedColumn = this.dialect.quoteIdentifier(column.name);
217
+ const sqlType = this.dialect.getSqlType(column.type, {
218
+ length: column.length,
219
+ precision: column.precision,
220
+ scale: column.scale,
221
+ dimensions: column.dimensions,
222
+ });
223
+ const alters = [];
224
+ alters.push(`ALTER COLUMN ${quotedColumn} TYPE ${sqlType}`);
225
+ if (column.nullable === false) {
226
+ alters.push(`ALTER COLUMN ${quotedColumn} SET NOT NULL`);
227
+ }
228
+ else if (column.nullable === true) {
229
+ alters.push(`ALTER COLUMN ${quotedColumn} DROP NOT NULL`);
230
+ }
231
+ if (column.defaultValue !== undefined) {
232
+ let defaultVal;
233
+ if (typeof column.defaultValue === "object" &&
234
+ column.defaultValue !== null &&
235
+ column.defaultValue.__type === "CURRENT_TIMESTAMP") {
236
+ defaultVal = "NOW()";
237
+ }
238
+ else if (typeof column.defaultValue === "string") {
239
+ defaultVal = `'${column.defaultValue}'`;
240
+ }
241
+ else {
242
+ defaultVal = String(column.defaultValue);
243
+ }
244
+ alters.push(`ALTER COLUMN ${quotedColumn} SET DEFAULT ${defaultVal}`);
245
+ }
246
+ return `ALTER TABLE ${quotedTable} ${alters.join(", ")}`;
247
+ }
248
+ createTimestamps(table) {
249
+ const quotedTable = this.dialect.quoteIdentifier(table);
250
+ return [
251
+ `ALTER TABLE ${quotedTable} ADD COLUMN "created_at" TIMESTAMPTZ NOT NULL DEFAULT NOW()`,
252
+ `ALTER TABLE ${quotedTable} ADD COLUMN "updated_at" TIMESTAMPTZ NOT NULL DEFAULT NOW()`,
253
+ ];
254
+ }
255
+ // ============================================================================
256
+ // INDEX OPERATIONS
257
+ // ============================================================================
258
+ createIndex(table, index) {
259
+ const quotedTable = this.dialect.quoteIdentifier(table);
260
+ let indexName;
261
+ if (index.name) {
262
+ indexName = index.name;
263
+ }
264
+ else {
265
+ const colStr = Array.isArray(index.columns) ? index.columns.join("_") : index.columns;
266
+ indexName = `idx_${table}_${colStr}`;
267
+ }
268
+ const quotedIndexName = this.dialect.quoteIdentifier(indexName);
269
+ const uniqueKeyword = index.unique ? "UNIQUE " : "";
270
+ const concurrentlyKeyword = index.concurrently ? "CONCURRENTLY " : "";
271
+ let columnsPart;
272
+ if (index.expressions && index.expressions.length > 0) {
273
+ columnsPart = index.expressions.map((expr) => `(${expr})`).join(", ");
274
+ }
275
+ else {
276
+ const columns = index.columns.map((col, i) => {
277
+ const quotedCol = this.dialect.quoteIdentifier(col);
278
+ const direction = index.directions?.[i]?.toUpperCase() ?? "";
279
+ return direction ? `${quotedCol} ${direction}` : quotedCol;
280
+ });
281
+ columnsPart = columns.join(", ");
282
+ }
283
+ let sql = `CREATE ${uniqueKeyword}INDEX ${concurrentlyKeyword}${quotedIndexName} ON ${quotedTable} (${columnsPart})`;
284
+ if (index.include && index.include.length > 0) {
285
+ const includeCols = index.include.map((col) => this.dialect.quoteIdentifier(col)).join(", ");
286
+ sql += ` INCLUDE (${includeCols})`;
287
+ }
288
+ if (index.where && Object.keys(index.where).length > 0) {
289
+ const conditions = Object.entries(index.where)
290
+ .map(([key, value]) => {
291
+ const quotedKey = this.dialect.quoteIdentifier(key);
292
+ return typeof value === "string" ? `${quotedKey} = '${value}'` : `${quotedKey} = ${value}`;
293
+ })
294
+ .join(" AND ");
295
+ sql += ` WHERE ${conditions}`;
296
+ }
297
+ return sql;
298
+ }
299
+ dropIndex(table, indexNameOrColumns) {
300
+ let indexName;
301
+ if (typeof indexNameOrColumns === "string") {
302
+ indexName = indexNameOrColumns;
303
+ }
304
+ else {
305
+ indexName = `idx_${table}_${indexNameOrColumns.join("_")}`;
306
+ }
307
+ const quotedIndexName = this.dialect.quoteIdentifier(indexName);
308
+ return `DROP INDEX IF EXISTS ${quotedIndexName}`;
309
+ }
310
+ createFullTextIndex(table, columns, options) {
311
+ const quotedTable = this.dialect.quoteIdentifier(table);
312
+ const indexName = options?.name ?? `idx_${table}_fulltext_${columns.join("_")}`;
313
+ const quotedIndexName = this.dialect.quoteIdentifier(indexName);
314
+ const language = options?.language ?? "english";
315
+ const tsvectors = columns.map((col) => {
316
+ const weight = options?.weights?.[col] ?? "A";
317
+ return `setweight(to_tsvector('${language}', COALESCE(${this.dialect.quoteIdentifier(col)}, '')), '${weight}')`;
318
+ });
319
+ return `CREATE INDEX ${quotedIndexName} ON ${quotedTable} USING GIN ((${tsvectors.join(" || ")}))`;
320
+ }
321
+ createGeoIndex(table, column, options) {
322
+ const quotedTable = this.dialect.quoteIdentifier(table);
323
+ const quotedColumn = this.dialect.quoteIdentifier(column);
324
+ const indexName = options?.name ?? `idx_${table}_geo_${column}`;
325
+ const quotedIndexName = this.dialect.quoteIdentifier(indexName);
326
+ return `CREATE INDEX ${quotedIndexName} ON ${quotedTable} USING GIST (${quotedColumn})`;
327
+ }
328
+ createVectorIndex(table, column, options) {
329
+ const quotedTable = this.dialect.quoteIdentifier(table);
330
+ const quotedColumn = this.dialect.quoteIdentifier(column);
331
+ const indexName = options.name ?? `idx_${table}_vector_${column}`;
332
+ const quotedIndexName = this.dialect.quoteIdentifier(indexName);
333
+ const opClass = options.similarity === "euclidean"
334
+ ? "vector_l2_ops"
335
+ : options.similarity === "dotProduct"
336
+ ? "vector_ip_ops"
337
+ : "vector_cosine_ops";
338
+ const lists = options.lists ?? 100;
339
+ return `CREATE INDEX ${quotedIndexName} ON ${quotedTable} USING ivfflat (${quotedColumn} ${opClass}) WITH (lists = ${lists})`;
340
+ }
341
+ createTTLIndex(table, column, expireAfterSeconds) {
342
+ const quotedTable = this.dialect.quoteIdentifier(table);
343
+ const quotedColumn = this.dialect.quoteIdentifier(column);
344
+ const indexName = `idx_${table}_ttl_${column}`;
345
+ const quotedIndexName = this.dialect.quoteIdentifier(indexName);
346
+ return `CREATE INDEX ${quotedIndexName} ON ${quotedTable} (${quotedColumn}) WHERE ${quotedColumn} < NOW() - INTERVAL '${expireAfterSeconds} seconds'`;
347
+ }
348
+ // ============================================================================
349
+ // CONSTRAINTS
350
+ // ============================================================================
351
+ addForeignKey(table, foreignKey) {
352
+ const quotedTable = this.dialect.quoteIdentifier(table);
353
+ const quotedColumn = this.dialect.quoteIdentifier(foreignKey.column);
354
+ const quotedRefTable = this.dialect.quoteIdentifier(foreignKey.referencesTable);
355
+ const quotedRefColumn = this.dialect.quoteIdentifier(foreignKey.referencesColumn);
356
+ const constraintName = foreignKey.name ?? `fk_${table}_${foreignKey.column}_${foreignKey.referencesTable}`;
357
+ const quotedConstraint = this.dialect.quoteIdentifier(constraintName);
358
+ let sql = `ALTER TABLE ${quotedTable} ADD CONSTRAINT ${quotedConstraint} FOREIGN KEY (${quotedColumn}) REFERENCES ${quotedRefTable} (${quotedRefColumn})`;
359
+ if (foreignKey.onDelete) {
360
+ sql += ` ON DELETE ${this.mapForeignKeyAction(foreignKey.onDelete)}`;
361
+ }
362
+ if (foreignKey.onUpdate) {
363
+ sql += ` ON UPDATE ${this.mapForeignKeyAction(foreignKey.onUpdate)}`;
364
+ }
365
+ return sql;
366
+ }
367
+ dropForeignKey(table, name) {
368
+ const quotedTable = this.dialect.quoteIdentifier(table);
369
+ const quotedConstraint = this.dialect.quoteIdentifier(name);
370
+ return `ALTER TABLE ${quotedTable} DROP CONSTRAINT ${quotedConstraint}`;
371
+ }
372
+ addPrimaryKey(table, columns) {
373
+ const quotedTable = this.dialect.quoteIdentifier(table);
374
+ const quotedColumns = columns.map((c) => this.dialect.quoteIdentifier(c)).join(", ");
375
+ const constraintName = `pk_${table}`;
376
+ const quotedConstraint = this.dialect.quoteIdentifier(constraintName);
377
+ return `ALTER TABLE ${quotedTable} ADD CONSTRAINT ${quotedConstraint} PRIMARY KEY (${quotedColumns})`;
378
+ }
379
+ dropPrimaryKey(table) {
380
+ const quotedTable = this.dialect.quoteIdentifier(table);
381
+ const constraintName = `pk_${table}`;
382
+ const quotedConstraint = this.dialect.quoteIdentifier(constraintName);
383
+ return `ALTER TABLE ${quotedTable} DROP CONSTRAINT ${quotedConstraint}`;
384
+ }
385
+ mapForeignKeyAction(action) {
386
+ switch (action) {
387
+ case "cascade": return "CASCADE";
388
+ case "restrict": return "RESTRICT";
389
+ case "setNull": return "SET NULL";
390
+ case "noAction": return "NO ACTION";
391
+ default: return "NO ACTION";
392
+ }
393
+ }
394
+ }export{PostgresSQLSerializer};//# sourceMappingURL=postgres-sql-serializer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgres-sql-serializer.js","sources":["../../../src/drivers/postgres/postgres-sql-serializer.ts"],"sourcesContent":[null],"names":[],"mappings":"8DAYA;;;;AAIG;AACG,MAAO,qBAAsB,SAAQ,aAAa,CAAA;AAClB,IAAA,OAAA,CAAA;AAApC,IAAA,WAAA,CAAoC,OAA2B,EAAA;AAC7D,QAAA,KAAK,EAAE,CAAC;QAD0B,IAAO,CAAA,OAAA,GAAP,OAAO,CAAoB;KAE9D;IAEM,SAAS,CAAC,SAA2B,EAAE,KAAa,EAAA;QACzD,QAAQ,SAAS,CAAC,IAAI;AACpB,YAAA,KAAK,aAAa;AAChB,gBAAA,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AACjC,YAAA,KAAK,wBAAwB;AAC3B,gBAAA,OAAO,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;AAC5C,YAAA,KAAK,WAAW;AACd,gBAAA,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC/B,YAAA,KAAK,mBAAmB;AACtB,gBAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;AACvC,YAAA,KAAK,aAAa;gBAChB,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,OAAiB,CAAC,CAAC;AAC9D,YAAA,KAAK,eAAe;AAClB,gBAAA,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACnC,YAAA,KAAK,WAAW;gBACd,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,OAA2B,CAAC,CAAC;AACtE,YAAA,KAAK,YAAY;gBACf,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,OAAiB,CAAC,CAAC;AAC7D,YAAA,KAAK,aAAa;;;;gBAIhB,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,OAAmB,CAAC,CAAC;YAChE,KAAK,cAAc,EAAE;AACnB,gBAAA,MAAM,OAAO,GAAG,SAAS,CAAC,OAAuC,CAAC;AAClE,gBAAA,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;AAC3D,aAAA;AACD,YAAA,KAAK,cAAc;;;;gBAIjB,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC,OAA2B,CAAC,CAAC;AACzE,YAAA,KAAK,aAAa;gBAChB,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,OAA0B,CAAC,CAAC;AACvE,YAAA,KAAK,WAAW;gBACd,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,OAA4B,CAAC,CAAC;YACvE,KAAK,mBAAmB,EAAE;AACxB,gBAAA,MAAM,OAAO,GAAG,SAAS,CAAC,OAA+C,CAAC;gBAC1E,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAChG,aAAA;AACD,YAAA,KAAK,iBAAiB;gBACpB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,OAAmB,CAAC,CAAC;YAC9D,KAAK,qBAAqB,EAAE;AAC1B,gBAAA,MAAM,OAAO,GAAG,SAAS,CAAC,OAAgE,CAAC;AAC3F,gBAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;AAC1E,aAAA;AACD,YAAA,KAAK,mBAAmB;gBACtB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,OAAiB,CAAC,CAAC;YAC5D,KAAK,gBAAgB,EAAE;AACrB,gBAAA,MAAM,OAAO,GAAG,SAAS,CAAC,OAAwD,CAAC;AACnF,gBAAA,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;AACpE,aAAA;AACD,YAAA,KAAK,cAAc;AACjB,gBAAA,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAA,IAAA,EAAO,KAAK,CAAA,KAAA,EAAQ,SAAS,CAAC,OAAO,CAAA,CAAE,CAAC,CAAC;YACxE,KAAK,mBAAmB,EAAE;AACxB,gBAAA,MAAM,OAAO,GAAG,SAAS,CAAC,OAA0D,CAAC;AACrF,gBAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;AACvE,aAAA;AACD,YAAA,KAAK,iBAAiB;AACpB,gBAAA,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAA,IAAA,EAAO,KAAK,CAAA,QAAA,EAAW,SAAS,CAAC,OAAO,CAAA,CAAE,CAAC,CAAC;YAC3E,KAAK,gBAAgB,EAAE;AACrB,gBAAA,MAAM,OAAO,GAAG,SAAS,CAAC,OAAyD,CAAC;AACpF,gBAAA,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAC/E,aAAA;AACD,YAAA,KAAK,cAAc;AACjB,gBAAA,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAA,IAAA,EAAO,KAAK,CAAA,KAAA,EAAQ,SAAS,CAAC,OAAO,CAAA,CAAE,CAAC,CAAC;AACxE,YAAA,KAAK,eAAe;gBAClB,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,OAA+B,CAAC,CAAC;AAC9E,YAAA,KAAK,gBAAgB;gBACnB,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,OAAiB,CAAC,CAAC;AACjE,YAAA,KAAK,eAAe;gBAClB,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,OAAmB,CAAC,CAAC;AAClE,YAAA,KAAK,gBAAgB;AACnB,gBAAA,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AACpC,YAAA,KAAK,UAAU;;AAEb,gBAAA,OAAO,IAAI,CAAC;AACd,YAAA,KAAK,WAAW;AACd,gBAAA,OAAO,IAAI,CAAC;AACd,YAAA,KAAK,kBAAkB;;AAErB,gBAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;YACtC,KAAK,cAAc,EAAE;AACnB,gBAAA,MAAM,OAAO,GAAG,SAAS,CAAC,OAAiB,CAAC;;AAE5C,gBAAA,OAAO,OAAO,CAAC;AAChB,aAAA;AACD,YAAA,KAAK,qBAAqB,CAAC;AAC3B,YAAA,KAAK,wBAAwB;;AAE3B,gBAAA,OAAO,IAAI,CAAC;AACd,YAAA;AACE,gBAAA,OAAO,IAAI,CAAC;AACf,SAAA;KACF;;;;AAMO,IAAA,WAAW,CAAC,KAAa,EAAA;QAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACxD,OAAO,CAAA,aAAA,EAAgB,WAAW,CAAA,GAAA,CAAK,CAAC;KACzC;AAEO,IAAA,sBAAsB,CAAC,KAAa,EAAA;QAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACxD,OAAO,CAAA,2BAAA,EAA8B,WAAW,CAAA,GAAA,CAAK,CAAC;KACvD;AAEO,IAAA,SAAS,CAAC,KAAa,EAAA;QAC7B,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACxD,OAAO,CAAA,WAAA,EAAc,WAAW,CAAA,QAAA,CAAU,CAAC;KAC5C;AAEO,IAAA,iBAAiB,CAAC,KAAa,EAAA;QACrC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACxD,OAAO,CAAA,qBAAA,EAAwB,WAAW,CAAA,QAAA,CAAU,CAAC;KACtD;IAEO,WAAW,CAAC,IAAY,EAAE,EAAU,EAAA;QAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;AAClD,QAAA,OAAO,CAAe,YAAA,EAAA,UAAU,CAAc,WAAA,EAAA,QAAQ,EAAE,CAAC;KAC1D;AAEO,IAAA,aAAa,CAAC,KAAa,EAAA;QACjC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACxD,OAAO,CAAA,eAAA,EAAkB,WAAW,CAAA,CAAE,CAAC;KACxC;;;;IAMO,SAAS,CAAC,KAAa,EAAE,MAAwB,EAAA;QACvD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AACxD,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAE/D,QAAA,IAAI,OAAe,CAAC;QACpB,IAAI,MAAM,CAAC,aAAa,EAAE;AACxB,YAAA,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,EAAE;gBAChC,OAAO,GAAG,WAAW,CAAC;AACvB,aAAA;AAAM,iBAAA;gBACL,OAAO,GAAG,QAAQ,CAAC;AACpB,aAAA;AACF,SAAA;AAAM,aAAA;YACL,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE;gBAC7C,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,UAAU,EAAE,MAAM,CAAC,UAAU;AAC9B,aAAA,CAAC,CAAC;AACJ,SAAA;QAED,IAAI,GAAG,GAAG,CAAe,YAAA,EAAA,WAAW,eAAe,YAAY,CAAA,CAAA,EAAI,OAAO,CAAA,CAAE,CAAC;QAE7E,IAAI,MAAM,CAAC,SAAS,EAAE;YACpB,GAAG,IAAI,yBAAyB,MAAM,CAAC,SAAS,CAAC,UAAU,GAAG,CAAC;AAC/D,YAAA,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE;gBAC3B,GAAG,IAAI,SAAS,CAAC;AAClB,aAAA;AACF,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,QAAQ,KAAK,KAAK,EAAE;gBACtD,GAAG,IAAI,WAAW,CAAC;AACpB,aAAA;AAED,YAAA,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,EAAE;AACrC,gBAAA,IACE,OAAO,MAAM,CAAC,YAAY,KAAK,QAAQ;oBACvC,MAAM,CAAC,YAAY,KAAK,IAAI;AAC3B,oBAAA,MAAM,CAAC,YAAoB,CAAC,MAAM,KAAK,mBAAmB,EAC3D;oBACA,GAAG,IAAI,gBAAgB,CAAC;AACzB,iBAAA;AAAM,qBAAA,IAAI,MAAM,CAAC,YAAY,KAAK,KAAK,EAAE;AACxC,oBAAA,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAChE,oBAAA,GAAG,IAAI,CAAA,UAAA,EAAa,OAAO,CAAA,CAAA,CAAG,CAAC;AAChC,iBAAA;AAAM,qBAAA,IAAI,OAAO,MAAM,CAAC,YAAY,KAAK,SAAS,EAAE;AACnD,oBAAA,GAAG,IAAI,CAAA,SAAA,EAAY,MAAM,CAAC,YAAY,GAAG,MAAM,GAAG,OAAO,EAAE,CAAC;AAC7D,iBAAA;AAAM,qBAAA,IAAI,OAAO,MAAM,CAAC,YAAY,KAAK,QAAQ,EAAE;AAClD,oBAAA,GAAG,IAAI,CAAY,SAAA,EAAA,MAAM,CAAC,YAAY,EAAE,CAAC;AAC1C,iBAAA;AAAM,qBAAA;oBACL,GAAG,IAAI,YAAY,MAAM,CAAC,YAAY,CAAE,CAAA,CAAC;AAC1C,iBAAA;AACF,aAAA;YAED,IAAI,MAAM,CAAC,OAAO,EAAE;gBAClB,GAAG,IAAI,cAAc,CAAC;AACvB,aAAA;YAED,IAAI,MAAM,CAAC,MAAM,EAAE;gBACjB,GAAG,IAAI,SAAS,CAAC;AAClB,aAAA;AACF,SAAA;AAED,QAAA,OAAO,GAAG,CAAC;KACZ;IAEO,UAAU,CAAC,KAAa,EAAE,MAAc,EAAA;QAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACxD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;AAC1D,QAAA,OAAO,CAAe,YAAA,EAAA,WAAW,CAAgB,aAAA,EAAA,YAAY,EAAE,CAAC;KACjE;IAEO,WAAW,CAAC,KAAa,EAAE,OAAiB,EAAA;QAClD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACxD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAe,YAAA,EAAA,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAA,CAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClG,QAAA,OAAO,CAAe,YAAA,EAAA,WAAW,CAAI,CAAA,EAAA,KAAK,EAAE,CAAC;KAC9C;AAEO,IAAA,YAAY,CAAC,KAAa,EAAE,IAAY,EAAE,EAAU,EAAA;QAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACxD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;AAClD,QAAA,OAAO,eAAe,WAAW,CAAA,eAAA,EAAkB,UAAU,CAAO,IAAA,EAAA,QAAQ,EAAE,CAAC;KAChF;IAEO,YAAY,CAAC,KAAa,EAAE,MAAwB,EAAA;QAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AACxD,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE;YACnD,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,UAAU,EAAE,MAAM,CAAC,UAAU;AAC9B,SAAA,CAAC,CAAC;QAEH,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,CAAA,aAAA,EAAgB,YAAY,CAAS,MAAA,EAAA,OAAO,CAAE,CAAA,CAAC,CAAC;AAE5D,QAAA,IAAI,MAAM,CAAC,QAAQ,KAAK,KAAK,EAAE;AAC7B,YAAA,MAAM,CAAC,IAAI,CAAC,gBAAgB,YAAY,CAAA,aAAA,CAAe,CAAC,CAAC;AAC1D,SAAA;AAAM,aAAA,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,EAAE;AACnC,YAAA,MAAM,CAAC,IAAI,CAAC,gBAAgB,YAAY,CAAA,cAAA,CAAgB,CAAC,CAAC;AAC3D,SAAA;AAED,QAAA,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,EAAE;AACrC,YAAA,IAAI,UAAkB,CAAC;AACvB,YAAA,IACE,OAAO,MAAM,CAAC,YAAY,KAAK,QAAQ;gBACvC,MAAM,CAAC,YAAY,KAAK,IAAI;AAC3B,gBAAA,MAAM,CAAC,YAAoB,CAAC,MAAM,KAAK,mBAAmB,EAC3D;gBACA,UAAU,GAAG,OAAO,CAAC;AACtB,aAAA;AAAM,iBAAA,IAAI,OAAO,MAAM,CAAC,YAAY,KAAK,QAAQ,EAAE;AAClD,gBAAA,UAAU,GAAG,CAAI,CAAA,EAAA,MAAM,CAAC,YAAY,GAAG,CAAC;AACzC,aAAA;AAAM,iBAAA;AACL,gBAAA,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAC1C,aAAA;YACD,MAAM,CAAC,IAAI,CAAC,CAAA,aAAA,EAAgB,YAAY,CAAgB,aAAA,EAAA,UAAU,CAAE,CAAA,CAAC,CAAC;AACvE,SAAA;QAED,OAAO,CAAA,YAAA,EAAe,WAAW,CAAA,CAAA,EAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAE,CAAC;KAC1D;AAEO,IAAA,gBAAgB,CAAC,KAAa,EAAA;QACpC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACxD,OAAO;AACL,YAAA,CAAA,YAAA,EAAe,WAAW,CAA6D,2DAAA,CAAA;AACvF,YAAA,CAAA,YAAA,EAAe,WAAW,CAA6D,2DAAA,CAAA;SACxF,CAAC;KACH;;;;IAMO,WAAW,CAAC,KAAa,EAAE,KAAsB,EAAA;QACvD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AACxD,QAAA,IAAI,SAAiB,CAAC;QACtB,IAAI,KAAK,CAAC,IAAI,EAAE;AACd,YAAA,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC;AACxB,SAAA;AAAM,aAAA;YACL,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;AACtF,YAAA,SAAS,GAAG,CAAO,IAAA,EAAA,KAAK,CAAI,CAAA,EAAA,MAAM,EAAE,CAAC;AACtC,SAAA;QACD,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;AAChE,QAAA,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,GAAG,SAAS,GAAG,EAAE,CAAC;AACpD,QAAA,MAAM,mBAAmB,GAAG,KAAK,CAAC,YAAY,GAAG,eAAe,GAAG,EAAE,CAAC;AAEtE,QAAA,IAAI,WAAmB,CAAC;QAExB,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACrD,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAA,CAAA,EAAI,IAAI,CAAG,CAAA,CAAA,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvE,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,KAAI;gBAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;AACpD,gBAAA,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;AAC7D,gBAAA,OAAO,SAAS,GAAG,CAAG,EAAA,SAAS,CAAI,CAAA,EAAA,SAAS,CAAE,CAAA,GAAG,SAAS,CAAC;AAC7D,aAAC,CAAC,CAAC;AACH,YAAA,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC,SAAA;AAED,QAAA,IAAI,GAAG,GAAG,CAAU,OAAA,EAAA,aAAa,CAAS,MAAA,EAAA,mBAAmB,CAAG,EAAA,eAAe,CAAO,IAAA,EAAA,WAAW,CAAK,EAAA,EAAA,WAAW,GAAG,CAAC;QAErH,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7C,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7F,YAAA,GAAG,IAAI,CAAA,UAAA,EAAa,WAAW,CAAA,CAAA,CAAG,CAAC;AACpC,SAAA;AAED,QAAA,IAAI,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;YACtD,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;iBAC3C,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;gBACpB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;gBACpD,OAAO,OAAO,KAAK,KAAK,QAAQ,GAAG,GAAG,SAAS,CAAA,IAAA,EAAO,KAAK,CAAG,CAAA,CAAA,GAAG,CAAA,EAAG,SAAS,CAAM,GAAA,EAAA,KAAK,EAAE,CAAC;AAC7F,aAAC,CAAC;iBACD,IAAI,CAAC,OAAO,CAAC,CAAC;AACjB,YAAA,GAAG,IAAI,CAAA,OAAA,EAAU,UAAU,CAAA,CAAE,CAAC;AAC/B,SAAA;AAED,QAAA,OAAO,GAAG,CAAC;KACZ;IAEO,SAAS,CAAC,KAAa,EAAE,kBAAqC,EAAA;AACpE,QAAA,IAAI,SAAiB,CAAC;AACtB,QAAA,IAAI,OAAO,kBAAkB,KAAK,QAAQ,EAAE;YAC1C,SAAS,GAAG,kBAAkB,CAAC;AAChC,SAAA;AAAM,aAAA;YACL,SAAS,GAAG,CAAO,IAAA,EAAA,KAAK,CAAI,CAAA,EAAA,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAE,CAAC;AAC5D,SAAA;QACD,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAChE,OAAO,CAAA,qBAAA,EAAwB,eAAe,CAAA,CAAE,CAAC;KAClD;AAEO,IAAA,mBAAmB,CAAC,KAAa,EAAE,OAAiB,EAAE,OAA8B,EAAA;QAC1F,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AACxD,QAAA,MAAM,SAAS,GAAG,OAAO,EAAE,IAAI,IAAI,CAAO,IAAA,EAAA,KAAK,CAAa,UAAA,EAAA,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAChF,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;AAChE,QAAA,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,SAAS,CAAC;QAEhD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,KAAI;YACpC,MAAM,MAAM,GAAG,OAAO,EAAE,OAAO,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC;AAC9C,YAAA,OAAO,CAA0B,uBAAA,EAAA,QAAQ,CAAe,YAAA,EAAA,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAY,SAAA,EAAA,MAAM,IAAI,CAAC;AAClH,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,CAAgB,aAAA,EAAA,eAAe,CAAO,IAAA,EAAA,WAAW,CAAgB,aAAA,EAAA,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA,EAAA,CAAI,CAAC;KACpG;AAEO,IAAA,cAAc,CAAC,KAAa,EAAE,MAAc,EAAE,OAAyB,EAAA;QAC7E,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACxD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,OAAO,EAAE,IAAI,IAAI,CAAA,IAAA,EAAO,KAAK,CAAA,KAAA,EAAQ,MAAM,CAAA,CAAE,CAAC;QAChE,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;AAEhE,QAAA,OAAO,gBAAgB,eAAe,CAAA,IAAA,EAAO,WAAW,CAAgB,aAAA,EAAA,YAAY,GAAG,CAAC;KACzF;AAEO,IAAA,iBAAiB,CAAC,KAAa,EAAE,MAAc,EAAE,OAA2B,EAAA;QAClF,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACxD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,IAAI,CAAA,IAAA,EAAO,KAAK,CAAA,QAAA,EAAW,MAAM,CAAA,CAAE,CAAC;QAClE,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;AAEhE,QAAA,MAAM,OAAO,GACX,OAAO,CAAC,UAAU,KAAK,WAAW;AAChC,cAAE,eAAe;AACjB,cAAE,OAAO,CAAC,UAAU,KAAK,YAAY;AACnC,kBAAE,eAAe;kBACf,mBAAmB,CAAC;AAE5B,QAAA,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC;QAEnC,OAAO,CAAA,aAAA,EAAgB,eAAe,CAAA,IAAA,EAAO,WAAW,CAAA,gBAAA,EAAmB,YAAY,CAAA,CAAA,EAAI,OAAO,CAAA,gBAAA,EAAmB,KAAK,CAAA,CAAA,CAAG,CAAC;KAC/H;AAEO,IAAA,cAAc,CAAC,KAAa,EAAE,MAAc,EAAE,kBAA0B,EAAA;QAC9E,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACxD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;AAC1D,QAAA,MAAM,SAAS,GAAG,CAAA,IAAA,EAAO,KAAK,CAAQ,KAAA,EAAA,MAAM,EAAE,CAAC;QAC/C,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAEhE,OAAO,CAAA,aAAA,EAAgB,eAAe,CAAA,IAAA,EAAO,WAAW,CAAA,EAAA,EAAK,YAAY,CAAA,QAAA,EAAW,YAAY,CAAA,qBAAA,EAAwB,kBAAkB,CAAA,SAAA,CAAW,CAAC;KACvJ;;;;IAMO,aAAa,CAAC,KAAa,EAAE,UAAgC,EAAA;QACnE,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AACxD,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AACrE,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AAChF,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;AAElF,QAAA,MAAM,cAAc,GAClB,UAAU,CAAC,IAAI,IAAI,CAAM,GAAA,EAAA,KAAK,CAAI,CAAA,EAAA,UAAU,CAAC,MAAM,CAAA,CAAA,EAAI,UAAU,CAAC,eAAe,EAAE,CAAC;QACtF,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;AAEtE,QAAA,IAAI,GAAG,GAAG,CAAe,YAAA,EAAA,WAAW,CAAmB,gBAAA,EAAA,gBAAgB,CAAiB,cAAA,EAAA,YAAY,CAAgB,aAAA,EAAA,cAAc,CAAK,EAAA,EAAA,eAAe,GAAG,CAAC;QAE1J,IAAI,UAAU,CAAC,QAAQ,EAAE;YACvB,GAAG,IAAI,CAAc,WAAA,EAAA,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA,CAAE,CAAC;AACtE,SAAA;QAED,IAAI,UAAU,CAAC,QAAQ,EAAE;YACvB,GAAG,IAAI,CAAc,WAAA,EAAA,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA,CAAE,CAAC;AACtE,SAAA;AAED,QAAA,OAAO,GAAG,CAAC;KACZ;IAEO,cAAc,CAAC,KAAa,EAAE,IAAY,EAAA;QAChD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACxD,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AAC5D,QAAA,OAAO,CAAe,YAAA,EAAA,WAAW,CAAoB,iBAAA,EAAA,gBAAgB,EAAE,CAAC;KACzE;IAEO,aAAa,CAAC,KAAa,EAAE,OAAiB,EAAA;QACpD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACxD,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrF,QAAA,MAAM,cAAc,GAAG,CAAM,GAAA,EAAA,KAAK,EAAE,CAAC;QACrC,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;AAEtE,QAAA,OAAO,eAAe,WAAW,CAAA,gBAAA,EAAmB,gBAAgB,CAAiB,cAAA,EAAA,aAAa,GAAG,CAAC;KACvG;AAEO,IAAA,cAAc,CAAC,KAAa,EAAA;QAClC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AACxD,QAAA,MAAM,cAAc,GAAG,CAAM,GAAA,EAAA,KAAK,EAAE,CAAC;QACrC,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;AAEtE,QAAA,OAAO,CAAe,YAAA,EAAA,WAAW,CAAoB,iBAAA,EAAA,gBAAgB,EAAE,CAAC;KACzE;AAEO,IAAA,mBAAmB,CACzB,MAAuD,EAAA;AAEvD,QAAA,QAAQ,MAAM;AACZ,YAAA,KAAK,SAAS,EAAE,OAAO,SAAS,CAAC;AACjC,YAAA,KAAK,UAAU,EAAE,OAAO,UAAU,CAAC;AACnC,YAAA,KAAK,SAAS,EAAE,OAAO,UAAU,CAAC;AAClC,YAAA,KAAK,UAAU,EAAE,OAAO,WAAW,CAAC;AACpC,YAAA,SAAS,OAAO,WAAW,CAAC;AAC7B,SAAA;KACF;AACF"}
package/esm/index.js CHANGED
@@ -1 +1 @@
1
- export{databaseDataSourceContext}from'./context/database-data-source-context.js';export{databaseTransactionContext}from'./context/database-transaction-context.js';export{DataSource}from'./data-source/data-source.js';export{dataSourceRegistry}from'./data-source/data-source-registry.js';export{MissingDataSourceError}from'./errors/missing-data-source.error.js';export{TransactionRollbackError}from'./errors/transaction-rollback.error.js';export{DatabaseDirtyTracker}from'./database-dirty-tracker.js';export{ModelEvents,globalModelEvents}from'./events/model-events.js';export{Model}from'./model/model.js';export{RegisterModel,cleanupModelsRegistery,getAllModelsFromRegistry,getModelFromRegistry,registerModelInRegistry,removeModelFromRegistery,resolveModelClass}from'./model/register-model.js';export{DatabaseRemover}from'./remover/database-remover.js';export{DatabaseRestorer}from'./restorer/database-restorer.js';export{DatabaseWriterValidationError}from'./validation/database-writer-validation-error.js';import'./validation/database-seal-plugins.js';export{DatabaseWriter}from'./writer/database-writer.js';export{belongsTo,belongsToMany,hasMany,hasOne}from'./relations/helpers.js';export{RelationLoader}from'./relations/relation-loader.js';export{RelationHydrator}from'./relations/relation-hydrator.js';export{PivotOperations,createPivotOperations}from'./relations/pivot-operations.js';export{$agg,isAggregateExpression}from'./expressions/aggregate-expressions.js';export{MongoDbDriver,isMongoDBDriverLoaded}from'./drivers/mongodb/mongodb-driver.js';export{MongoIdGenerator}from'./drivers/mongodb/mongodb-id-generator.js';export{MongoQueryBuilder}from'./drivers/mongodb/mongodb-query-builder.js';export{MongoSyncAdapter}from'./drivers/mongodb/mongodb-sync-adapter.js';export{modelSync}from'./sync/model-sync.js';export{ModelSyncOperation}from'./sync/model-sync-operation.js';export{DEFAULT_MAX_SYNC_DEPTH,SyncContextManager}from'./sync/sync-context.js';export{SyncManager}from'./sync/sync-manager.js';export{connectToDatabase,getDatabaseDriver,transaction}from'./utils/connect-to-database.js';export{useModelTransformer}from'./utils/database-writer.utils.js';export{defineModel}from'./utils/define-model.js';export{onceConnected,onceDisconnected}from'./utils/once-connected.js';export{ColumnBuilder}from'./migration/column-builder.js';export{ForeignKeyBuilder}from'./migration/foreign-key-builder.js';export{Migration,migrate}from'./migration/migration.js';export{MigrationRunner,migrationRunner}from'./migration/migration-runner.js';export{MongoMigrationDriver}from'./drivers/mongodb/mongodb-migration-driver.js';export{PostgresBlueprint}from'./drivers/postgres/postgres-blueprint.js';export{PostgresDialect}from'./drivers/postgres/postgres-dialect.js';export{PostgresDriver}from'./drivers/postgres/postgres-driver.js';export{PostgresMigrationDriver}from'./drivers/postgres/postgres-migration-driver.js';export{PostgresQueryBuilder}from'./drivers/postgres/postgres-query-builder.js';export{PostgresQueryParser}from'./drivers/postgres/postgres-query-parser.js';export{PostgresSyncAdapter}from'./drivers/postgres/postgres-sync-adapter.js';//# sourceMappingURL=index.js.map
1
+ export{databaseDataSourceContext}from'./context/database-data-source-context.js';export{databaseTransactionContext}from'./context/database-transaction-context.js';export{DataSource}from'./data-source/data-source.js';export{dataSourceRegistry}from'./data-source/data-source-registry.js';export{MissingDataSourceError}from'./errors/missing-data-source.error.js';export{TransactionRollbackError}from'./errors/transaction-rollback.error.js';export{DatabaseDirtyTracker}from'./database-dirty-tracker.js';export{ModelEvents,globalModelEvents}from'./events/model-events.js';export{Model}from'./model/model.js';export{RegisterModel,cleanupModelsRegistery,getAllModelsFromRegistry,getModelFromRegistry,registerModelInRegistry,removeModelFromRegistery,resolveModelClass}from'./model/register-model.js';export{DatabaseRemover}from'./remover/database-remover.js';export{DatabaseRestorer}from'./restorer/database-restorer.js';export{DatabaseWriterValidationError}from'./validation/database-writer-validation-error.js';import'./validation/database-seal-plugins.js';export{DatabaseWriter}from'./writer/database-writer.js';export{belongsTo,belongsToMany,hasMany,hasOne}from'./relations/helpers.js';export{RelationLoader}from'./relations/relation-loader.js';export{RelationHydrator}from'./relations/relation-hydrator.js';export{PivotOperations,createPivotOperations}from'./relations/pivot-operations.js';export{$agg,isAggregateExpression}from'./expressions/aggregate-expressions.js';export{MongoDbDriver,isMongoDBDriverLoaded}from'./drivers/mongodb/mongodb-driver.js';export{MongoIdGenerator}from'./drivers/mongodb/mongodb-id-generator.js';export{MongoQueryBuilder}from'./drivers/mongodb/mongodb-query-builder.js';export{MongoSyncAdapter}from'./drivers/mongodb/mongodb-sync-adapter.js';export{modelSync}from'./sync/model-sync.js';export{ModelSyncOperation}from'./sync/model-sync-operation.js';export{DEFAULT_MAX_SYNC_DEPTH,SyncContextManager}from'./sync/sync-context.js';export{SyncManager}from'./sync/sync-manager.js';export{connectToDatabase,getDatabaseDriver,transaction}from'./utils/connect-to-database.js';export{useModelTransformer}from'./utils/database-writer.utils.js';export{defineModel}from'./utils/define-model.js';export{onceConnected,onceDisconnected}from'./utils/once-connected.js';export{ColumnBuilder}from'./migration/column-builder.js';export{ForeignKeyBuilder}from'./migration/foreign-key-builder.js';export{DetachedColumnBuilder,arrayBigInt,arrayBoolean,arrayDate,arrayDecimal,arrayFloat,arrayInt,arrayText,arrayTimestamp,arrayUuid,bigInt,bigInteger,binary,blobCol,boolCol as bool,boolCol,char,date,dateTime,decimal,double,enumCol,float,geometry,int,integer,ipAddress,json,lineString,longText,macAddress,mediumText,objectCol,point,polygon,setCol,smallInt,smallInteger,string,text,time,timestamp,tinyInt,tinyInteger,ulid,uuid,vector,year}from'./migration/column-helpers.js';export{Migration,migrate}from'./migration/migration.js';export{MigrationRunner,migrationRunner}from'./migration/migration-runner.js';export{MongoMigrationDriver}from'./drivers/mongodb/mongodb-migration-driver.js';export{PostgresBlueprint}from'./drivers/postgres/postgres-blueprint.js';export{PostgresDialect}from'./drivers/postgres/postgres-dialect.js';export{PostgresDriver}from'./drivers/postgres/postgres-driver.js';export{PostgresMigrationDriver}from'./drivers/postgres/postgres-migration-driver.js';export{PostgresQueryBuilder}from'./drivers/postgres/postgres-query-builder.js';export{PostgresQueryParser}from'./drivers/postgres/postgres-query-parser.js';export{PostgresSyncAdapter}from'./drivers/postgres/postgres-sync-adapter.js';//# sourceMappingURL=index.js.map
@@ -244,22 +244,32 @@ export declare class ColumnBuilder {
244
244
  /**
245
245
  * Declare a foreign key constraint on this column.
246
246
  *
247
+ * Accepts either a raw table-name string or a Model class (anything with a
248
+ * static `table` property). Using a Model class is preferred — it is
249
+ * type-safe and automatically tracks table renames.
250
+ *
247
251
  * Pushes an `addForeignKey` operation immediately using a mutable reference —
248
252
  * subsequent `.on()`, `.onDelete()`, `.onUpdate()` calls mutate the same
249
253
  * definition that is already queued, so no `.add()` terminator is needed.
250
254
  *
251
255
  * Referenced column defaults to `"id"` — use `.on()` to override.
252
256
  *
253
- * @param table - Referenced table name
257
+ * @param tableOrModel - Referenced table name OR a Model class with a static `table` property
254
258
  * @returns This builder for chaining
255
259
  *
256
260
  * @example
257
261
  * ```typescript
258
- * this.integer("user_id").references("users");
259
- * this.integer("user_id").references("users").on("custom_id").onDelete("cascade");
262
+ * // Preferred — model class reference (type-safe, rename-proof)
263
+ * this.uuid("organization_id").references(Organization).onDelete("cascade");
264
+ *
265
+ * // Also supported — raw table string
266
+ * this.uuid("organization_id").references("organizations").onDelete("cascade");
267
+ * this.uuid("organization_id").references(Organization.table).onDelete("cascade");
260
268
  * ```
261
269
  */
262
- references(table: string): this;
270
+ references(tableOrModel: string | {
271
+ table: string;
272
+ }): this;
263
273
  /**
264
274
  * Set the referenced column for the foreign key.
265
275
  *
@@ -1 +1 @@
1
- {"version":3,"file":"column-builder.d.ts","sourceRoot":"","sources":["../../src/migration/column-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"column-builder.d.ts","sourceRoot":"","sources":["../../src/migration/column-builder.ts"],"names":[],"mappings":"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"}
@@ -322,25 +322,34 @@ class ColumnBuilder {
322
322
  /**
323
323
  * Declare a foreign key constraint on this column.
324
324
  *
325
+ * Accepts either a raw table-name string or a Model class (anything with a
326
+ * static `table` property). Using a Model class is preferred — it is
327
+ * type-safe and automatically tracks table renames.
328
+ *
325
329
  * Pushes an `addForeignKey` operation immediately using a mutable reference —
326
330
  * subsequent `.on()`, `.onDelete()`, `.onUpdate()` calls mutate the same
327
331
  * definition that is already queued, so no `.add()` terminator is needed.
328
332
  *
329
333
  * Referenced column defaults to `"id"` — use `.on()` to override.
330
334
  *
331
- * @param table - Referenced table name
335
+ * @param tableOrModel - Referenced table name OR a Model class with a static `table` property
332
336
  * @returns This builder for chaining
333
337
  *
334
338
  * @example
335
339
  * ```typescript
336
- * this.integer("user_id").references("users");
337
- * this.integer("user_id").references("users").on("custom_id").onDelete("cascade");
340
+ * // Preferred — model class reference (type-safe, rename-proof)
341
+ * this.uuid("organization_id").references(Organization).onDelete("cascade");
342
+ *
343
+ * // Also supported — raw table string
344
+ * this.uuid("organization_id").references("organizations").onDelete("cascade");
345
+ * this.uuid("organization_id").references(Organization.table).onDelete("cascade");
338
346
  * ```
339
347
  */
340
- references(table) {
348
+ references(tableOrModel) {
349
+ const tableName = typeof tableOrModel === "string" ? tableOrModel : tableOrModel.table;
341
350
  this.fkDefinition = {
342
351
  column: this.definition.name,
343
- referencesTable: table,
352
+ referencesTable: tableName,
344
353
  referencesColumn: "id",
345
354
  onDelete: "restrict",
346
355
  onUpdate: "restrict",
@@ -1 +1 @@
1
- {"version":3,"file":"column-builder.js","sources":["../../src/migration/column-builder.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"column-builder.js","sources":["../../src/migration/column-builder.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}