@warlock.js/cascade 4.0.142 → 4.0.144
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/cjs/contracts/database-driver.contract.d.ts +14 -0
- package/cjs/contracts/database-driver.contract.d.ts.map +1 -1
- package/cjs/drivers/postgres/postgres-driver.d.ts +6 -0
- package/cjs/drivers/postgres/postgres-driver.d.ts.map +1 -1
- package/cjs/drivers/postgres/postgres-driver.js +8 -1
- package/cjs/drivers/postgres/postgres-driver.js.map +1 -1
- package/cjs/drivers/postgres/postgres-sql-serializer.d.ts +37 -0
- package/cjs/drivers/postgres/postgres-sql-serializer.d.ts.map +1 -0
- package/cjs/drivers/postgres/postgres-sql-serializer.js +394 -0
- package/cjs/drivers/postgres/postgres-sql-serializer.js.map +1 -0
- package/cjs/migration/migration-runner.d.ts +32 -1
- package/cjs/migration/migration-runner.d.ts.map +1 -1
- package/cjs/migration/migration-runner.js +216 -46
- package/cjs/migration/migration-runner.js.map +1 -1
- package/cjs/migration/migration.d.ts +35 -3
- package/cjs/migration/migration.d.ts.map +1 -1
- package/cjs/migration/migration.js +29 -3
- package/cjs/migration/migration.js.map +1 -1
- package/cjs/migration/sql-grammar.d.ts +18 -0
- package/cjs/migration/sql-grammar.d.ts.map +1 -0
- package/cjs/migration/sql-grammar.js +77 -0
- package/cjs/migration/sql-grammar.js.map +1 -0
- package/cjs/migration/sql-serializer.d.ts +22 -0
- package/cjs/migration/sql-serializer.d.ts.map +1 -0
- package/cjs/migration/sql-serializer.js +26 -0
- package/cjs/migration/sql-serializer.js.map +1 -0
- package/cjs/migration/types.d.ts +13 -0
- package/cjs/migration/types.d.ts.map +1 -1
- package/esm/contracts/database-driver.contract.d.ts +14 -0
- package/esm/contracts/database-driver.contract.d.ts.map +1 -1
- package/esm/drivers/postgres/postgres-driver.d.ts +6 -0
- package/esm/drivers/postgres/postgres-driver.d.ts.map +1 -1
- package/esm/drivers/postgres/postgres-driver.js +8 -1
- package/esm/drivers/postgres/postgres-driver.js.map +1 -1
- package/esm/drivers/postgres/postgres-sql-serializer.d.ts +37 -0
- package/esm/drivers/postgres/postgres-sql-serializer.d.ts.map +1 -0
- package/esm/drivers/postgres/postgres-sql-serializer.js +394 -0
- package/esm/drivers/postgres/postgres-sql-serializer.js.map +1 -0
- package/esm/migration/migration-runner.d.ts +32 -1
- package/esm/migration/migration-runner.d.ts.map +1 -1
- package/esm/migration/migration-runner.js +216 -46
- package/esm/migration/migration-runner.js.map +1 -1
- package/esm/migration/migration.d.ts +35 -3
- package/esm/migration/migration.d.ts.map +1 -1
- package/esm/migration/migration.js +29 -3
- package/esm/migration/migration.js.map +1 -1
- package/esm/migration/sql-grammar.d.ts +18 -0
- package/esm/migration/sql-grammar.d.ts.map +1 -0
- package/esm/migration/sql-grammar.js +77 -0
- package/esm/migration/sql-grammar.js.map +1 -0
- package/esm/migration/sql-serializer.d.ts +22 -0
- package/esm/migration/sql-serializer.d.ts.map +1 -0
- package/esm/migration/sql-serializer.js +26 -0
- package/esm/migration/sql-serializer.js.map +1 -0
- package/esm/migration/types.d.ts +13 -0
- package/esm/migration/types.d.ts.map +1 -1
- package/package.json +4 -4
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { SqlDialectContract } from "../sql/sql-dialect.contract";
|
|
2
|
+
import type { PendingOperation } from "../../migration/migration";
|
|
3
|
+
import { SQLSerializer } from "../../migration/sql-serializer";
|
|
4
|
+
/**
|
|
5
|
+
* PostgreSQL-specific SQL serializer.
|
|
6
|
+
*
|
|
7
|
+
* Converts pending migration operations into valid PostgreSQL DDL statements.
|
|
8
|
+
*/
|
|
9
|
+
export declare class PostgresSQLSerializer extends SQLSerializer {
|
|
10
|
+
private readonly dialect;
|
|
11
|
+
constructor(dialect: SqlDialectContract);
|
|
12
|
+
serialize(operation: PendingOperation, table: string): string | string[] | null;
|
|
13
|
+
private createTable;
|
|
14
|
+
private createTableIfNotExists;
|
|
15
|
+
private dropTable;
|
|
16
|
+
private dropTableIfExists;
|
|
17
|
+
private renameTable;
|
|
18
|
+
private truncateTable;
|
|
19
|
+
private addColumn;
|
|
20
|
+
private dropColumn;
|
|
21
|
+
private dropColumns;
|
|
22
|
+
private renameColumn;
|
|
23
|
+
private modifyColumn;
|
|
24
|
+
private createTimestamps;
|
|
25
|
+
private createIndex;
|
|
26
|
+
private dropIndex;
|
|
27
|
+
private createFullTextIndex;
|
|
28
|
+
private createGeoIndex;
|
|
29
|
+
private createVectorIndex;
|
|
30
|
+
private createTTLIndex;
|
|
31
|
+
private addForeignKey;
|
|
32
|
+
private dropForeignKey;
|
|
33
|
+
private addPrimaryKey;
|
|
34
|
+
private dropPrimaryKey;
|
|
35
|
+
private mapForeignKeyAction;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=postgres-sql-serializer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postgres-sql-serializer.d.ts","sourceRoot":"","sources":["../../../src/drivers/postgres/postgres-sql-serializer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAU/D;;;;GAIG;AACH,qBAAa,qBAAsB,SAAQ,aAAa;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,kBAAkB;IAIxD,SAAS,CAAC,SAAS,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;IAoGtF,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,sBAAsB;IAK9B,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,SAAS;IA+DjB,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,YAAY;IAsCpB,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,WAAW;IA8CnB,OAAO,CAAC,SAAS;IAWjB,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,iBAAiB;IAkBzB,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,aAAa;IAuBrB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,mBAAmB;CAW5B"}
|
|
@@ -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":"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"}
|
|
@@ -6,7 +6,6 @@ import type { MigrationRecord, MigrationResult } from "./types";
|
|
|
6
6
|
*/
|
|
7
7
|
type MigrationClass = (new () => Migration) & {
|
|
8
8
|
migrationName: string;
|
|
9
|
-
order?: number;
|
|
10
9
|
createdAt?: string;
|
|
11
10
|
};
|
|
12
11
|
/**
|
|
@@ -159,6 +158,10 @@ export declare class MigrationRunner {
|
|
|
159
158
|
* ```
|
|
160
159
|
*/
|
|
161
160
|
runAll(options?: ExecuteOptions): Promise<MigrationResult[]>;
|
|
161
|
+
/**
|
|
162
|
+
* Export pending migrations as phase-ordered SQL files in database/sql/ directory.
|
|
163
|
+
*/
|
|
164
|
+
exportSQL(): Promise<void>;
|
|
162
165
|
/**
|
|
163
166
|
* Rollback the last batch of migrations.
|
|
164
167
|
*
|
|
@@ -201,6 +204,34 @@ export declare class MigrationRunner {
|
|
|
201
204
|
* Run a single migration.
|
|
202
205
|
*/
|
|
203
206
|
private runMigration;
|
|
207
|
+
/**
|
|
208
|
+
* Create, configure, and return a ready-to-use migration instance.
|
|
209
|
+
*
|
|
210
|
+
* Centralises the repeated "new + setDriver + setMigrationDefaults" boilerplate
|
|
211
|
+
* that all batch/single execution paths need.
|
|
212
|
+
*
|
|
213
|
+
* @internal
|
|
214
|
+
*/
|
|
215
|
+
private createMigrationInstance;
|
|
216
|
+
/**
|
|
217
|
+
* Format an ordered array of TaggedSQL into a human-readable SQL file string.
|
|
218
|
+
*
|
|
219
|
+
* Consecutive statements that belong to the same (phase, migration) group share
|
|
220
|
+
* a single block comment at the top, avoiding the noisy per-statement repetition.
|
|
221
|
+
*
|
|
222
|
+
* Example output:
|
|
223
|
+
* ```sql
|
|
224
|
+
* /* Phase 3 [create-users] *\/
|
|
225
|
+
* ALTER TABLE "users" ADD COLUMN "name" TEXT NOT NULL;
|
|
226
|
+
* ALTER TABLE "users" ADD COLUMN "email" TEXT NOT NULL;
|
|
227
|
+
*
|
|
228
|
+
* /* Phase 4 [create-users] *\/
|
|
229
|
+
* CREATE UNIQUE INDEX ...;
|
|
230
|
+
* ```
|
|
231
|
+
*
|
|
232
|
+
* @internal
|
|
233
|
+
*/
|
|
234
|
+
private formatSQLForExport;
|
|
204
235
|
/**
|
|
205
236
|
* Get pending (not executed) registered migrations.
|
|
206
237
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migration-runner.d.ts","sourceRoot":"","sources":["../../src/migration/migration-runner.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"migration-runner.d.ts","sourceRoot":"","sources":["../../src/migration/migration-runner.ts"],"names":[],"mappings":"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"}
|