prostgles-server 3.0.130 → 3.0.131
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/TableConfig/TableConfig.d.ts +2 -2
- package/dist/TableConfig/TableConfig.d.ts.map +1 -1
- package/dist/TableConfig/TableConfig.js +34 -29
- package/dist/TableConfig/TableConfig.js.map +1 -1
- package/dist/TableConfig/getColumnDefinitionQuery.d.ts +13 -1
- package/dist/TableConfig/getColumnDefinitionQuery.d.ts.map +1 -1
- package/dist/TableConfig/getColumnDefinitionQuery.js +22 -10
- package/dist/TableConfig/getColumnDefinitionQuery.js.map +1 -1
- package/dist/TableConfig/getConstraintDefinitionQueries.d.ts +8 -0
- package/dist/TableConfig/getConstraintDefinitionQueries.d.ts.map +1 -0
- package/dist/TableConfig/getConstraintDefinitionQueries.js +32 -0
- package/dist/TableConfig/getConstraintDefinitionQueries.js.map +1 -0
- package/lib/TableConfig/TableConfig.d.ts +2 -2
- package/lib/TableConfig/TableConfig.d.ts.map +1 -1
- package/lib/TableConfig/TableConfig.js +34 -29
- package/lib/TableConfig/TableConfig.ts +60 -55
- package/lib/TableConfig/getColumnDefinitionQuery.d.ts +13 -1
- package/lib/TableConfig/getColumnDefinitionQuery.d.ts.map +1 -1
- package/lib/TableConfig/getColumnDefinitionQuery.js +22 -10
- package/lib/TableConfig/getColumnDefinitionQuery.ts +29 -11
- package/lib/TableConfig/getConstraintDefinitionQueries.d.ts +8 -0
- package/lib/TableConfig/getConstraintDefinitionQueries.d.ts.map +1 -0
- package/lib/TableConfig/getConstraintDefinitionQueries.js +31 -0
- package/lib/TableConfig/getConstraintDefinitionQueries.ts +37 -0
- package/package.json +1 -1
- package/tests/client/PID.txt +1 -1
- package/tests/server/package-lock.json +1 -1
|
@@ -162,11 +162,11 @@ type UnionKeys<T> = T extends T ? keyof T : never;
|
|
|
162
162
|
type StrictUnionHelper<T, TAll> = T extends any ? T & Partial<Record<Exclude<UnionKeys<TAll>, keyof T>, never>> : never;
|
|
163
163
|
export type StrictUnion<T> = StrictUnionHelper<T, T>;
|
|
164
164
|
export declare const CONSTRAINT_TYPES: readonly ["PRIMARY KEY", "UNIQUE", "CHECK"];
|
|
165
|
-
type TableDefinition<LANG_IDS> = {
|
|
165
|
+
export type TableDefinition<LANG_IDS> = {
|
|
166
166
|
columns?: {
|
|
167
167
|
[column_name: string]: ColumnConfig<LANG_IDS>;
|
|
168
168
|
};
|
|
169
|
-
constraints?: {
|
|
169
|
+
constraints?: string[] | {
|
|
170
170
|
[constraint_name: string]: string | {
|
|
171
171
|
type: typeof CONSTRAINT_TYPES[number];
|
|
172
172
|
dropIfExists?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableConfig.d.ts","sourceRoot":"","sources":["../../lib/TableConfig/TableConfig.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"TableConfig.d.ts","sourceRoot":"","sources":["../../lib/TableConfig/TableConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ const DboBuilder_1 = require("../DboBuilder");
|
|
|
6
6
|
const PubSubManager_1 = require("../PubSubManager/PubSubManager");
|
|
7
7
|
const validate_jsonb_schema_sql_1 = require("../JSONBValidation/validate_jsonb_schema_sql");
|
|
8
8
|
const getColumnDefinitionQuery_1 = require("./getColumnDefinitionQuery");
|
|
9
|
+
const getConstraintDefinitionQueries_1 = require("./getConstraintDefinitionQueries");
|
|
9
10
|
const parseI18N = (params) => {
|
|
10
11
|
const { config, lang, defaultLang, defaultValue } = params;
|
|
11
12
|
if (config) {
|
|
@@ -195,6 +196,7 @@ class TableConfigurator {
|
|
|
195
196
|
/* Create/Alter columns */
|
|
196
197
|
for await (const tableName of (0, prostgles_types_1.getKeys)(this.config)) {
|
|
197
198
|
const tableConf = this.config[tableName];
|
|
199
|
+
const constraintQueries = (0, getConstraintDefinitionQueries_1.getConstraintDefinitionQueries)({ tableName, tableConf: tableConf });
|
|
198
200
|
if ("columns" in tableConf) {
|
|
199
201
|
const colCreateLines = [];
|
|
200
202
|
const tableHandler = this.dbo[tableName];
|
|
@@ -206,12 +208,7 @@ class TableConfigurator {
|
|
|
206
208
|
/** Must install validation function */
|
|
207
209
|
if (hasJSONBValidation) {
|
|
208
210
|
try {
|
|
209
|
-
|
|
210
|
-
/* prevent duplicate key value violates unique constraint "pg_namespace_nspname_index" Key (nspname)=(prostgles) already exists.*/
|
|
211
|
-
LOCK TABLE pg_catalog.pg_namespace IN SHARE ROW EXCLUSIVE MODE;
|
|
212
|
-
CREATE SCHEMA IF NOT EXISTS prostgles;\n
|
|
213
|
-
${validate_jsonb_schema_sql_1.validate_jsonb_schema_sql}`;
|
|
214
|
-
await this.db.any(fileContent);
|
|
211
|
+
await this.db.any(validate_jsonb_schema_sql_1.validate_jsonb_schema_sql);
|
|
215
212
|
}
|
|
216
213
|
catch (err) {
|
|
217
214
|
console.error("Could not install the jsonb validation function due to error: ", err);
|
|
@@ -227,14 +224,16 @@ class TableConfigurator {
|
|
|
227
224
|
for await (const colName of columns) {
|
|
228
225
|
const colConf = tableConf.columns[colName];
|
|
229
226
|
/* Add column to create statement */
|
|
230
|
-
|
|
231
|
-
|
|
227
|
+
const colDef = await (0, getColumnDefinitionQuery_1.getColumnDefinitionQuery)({ colConf, column: colName, db: this.db, table: tableName });
|
|
228
|
+
if (!colDef) {
|
|
229
|
+
// Column has only labels
|
|
230
|
+
}
|
|
231
|
+
else if (!tableHandler) {
|
|
232
232
|
columnDefs.push(colDef);
|
|
233
233
|
colCreateLines.push(colDef);
|
|
234
234
|
/** Alter existing column */
|
|
235
235
|
}
|
|
236
236
|
else if (tableHandler && !tableHandler.columns?.find(c => colName === c.name)) {
|
|
237
|
-
const colDef = await (0, getColumnDefinitionQuery_1.getColumnDefinitionQuery)({ colConf, column: colName, db: this.db, table: tableName });
|
|
238
237
|
columnDefs.push(colDef);
|
|
239
238
|
queries.push(`
|
|
240
239
|
ALTER TABLE ${asName(tableName)}
|
|
@@ -252,21 +251,44 @@ class TableConfigurator {
|
|
|
252
251
|
/** Remove droped/altered constraints */
|
|
253
252
|
if (tableHandler && columnDefs.length) {
|
|
254
253
|
let newConstraints = [];
|
|
254
|
+
let newCols = [];
|
|
255
255
|
try {
|
|
256
256
|
await this.db.tx(async (t) => {
|
|
257
257
|
const { v } = await t.one("SELECT md5(random()::text) as v");
|
|
258
258
|
const randomTableName = `prostgles_constr_${v}`;
|
|
259
|
-
|
|
259
|
+
const columnDefsWithoutReferences = columnDefs.map(cdef => {
|
|
260
|
+
return cdef.slice(0, cdef.toLowerCase().indexOf(" references "));
|
|
261
|
+
});
|
|
262
|
+
await t.any(`CREATE TABLE ${randomTableName} ( \n${columnDefsWithoutReferences.join(",\n")}\n );\n` +
|
|
263
|
+
(constraintQueries ?? []).join("\n"));
|
|
260
264
|
newConstraints = await (0, getColumnDefinitionQuery_1.getColConstraints)({ db: t, table: randomTableName });
|
|
265
|
+
newCols = await (0, getColumnDefinitionQuery_1.getTableColumns)({ db: this.db, tableName });
|
|
261
266
|
return Promise.reject("Done");
|
|
262
267
|
});
|
|
263
268
|
}
|
|
264
269
|
catch (e) {
|
|
265
270
|
}
|
|
271
|
+
const ALTER_TABLE_Q = `ALTER TABLE ${asName(tableName)}`;
|
|
266
272
|
const currConstraints = await (0, getColumnDefinitionQuery_1.getColConstraints)({ db: this.db, table: tableName });
|
|
267
273
|
currConstraints.forEach(c => {
|
|
268
274
|
if (!newConstraints.some(nc => nc.type === c.type && nc.definition === c.definition && nc.cols.sort().join() === c.cols.sort().join())) {
|
|
269
|
-
queries.unshift(
|
|
275
|
+
queries.unshift(`${ALTER_TABLE_Q} DROP CONSTRAINT ${asName(c.name)} CASCADE;`);
|
|
276
|
+
}
|
|
277
|
+
});
|
|
278
|
+
const currCols = await (0, getColumnDefinitionQuery_1.getTableColumns)({ db: this.db, tableName });
|
|
279
|
+
currCols.forEach(c => {
|
|
280
|
+
const newCol = newCols.find(nc => nc.column_name === c.column_name);
|
|
281
|
+
if (!newCol) {
|
|
282
|
+
queries.push(`${ALTER_TABLE_Q} DROP COLUMN ${asName(c.column_name)} CASCADE;`);
|
|
283
|
+
}
|
|
284
|
+
else if (newCol.nullable !== c.nullable) {
|
|
285
|
+
queries.push(`${ALTER_TABLE_Q} ALTER COLUMN ${asName(c.column_name)} ${newCol.nullable ? "SET" : "DROP"} NOT NULL;`);
|
|
286
|
+
}
|
|
287
|
+
else if (newCol.udt_name !== c.udt_name) {
|
|
288
|
+
queries.push(`${ALTER_TABLE_Q} ALTER COLUMN ${asName(c.column_name)} TYPE ${newCol.udt_name};`);
|
|
289
|
+
}
|
|
290
|
+
else if (newCol.column_default !== c.column_default) {
|
|
291
|
+
queries.push(`${ALTER_TABLE_Q} ALTER COLUMN ${asName(c.column_name)} ${newCol.column_default === null ? "DROP DEFAULT" : `SET DEFAULT ${newCol.column_default}`};`);
|
|
270
292
|
}
|
|
271
293
|
});
|
|
272
294
|
}
|
|
@@ -280,24 +302,7 @@ class TableConfigurator {
|
|
|
280
302
|
this.log("TableConfigurator: Created table: \n" + queries.at(-1));
|
|
281
303
|
}
|
|
282
304
|
}
|
|
283
|
-
|
|
284
|
-
const constraints = await getTableConstraings(this.db, tableName);
|
|
285
|
-
const constraintNames = (0, prostgles_types_1.getKeys)(tableConf.constraints);
|
|
286
|
-
constraintNames.map(constraintName => {
|
|
287
|
-
const _cnstr = tableConf.constraints[constraintName];
|
|
288
|
-
const constraintDef = typeof _cnstr === "string" ? _cnstr : `${_cnstr.type} (${_cnstr.content})`;
|
|
289
|
-
const canDrop = (0, prostgles_types_1.isObject)(_cnstr) && _cnstr.dropIfExists;
|
|
290
|
-
/** Drop constraints with the same name */
|
|
291
|
-
const existingConstraint = constraints.some(c => c.conname === constraintName);
|
|
292
|
-
if (existingConstraint) {
|
|
293
|
-
if (canDrop)
|
|
294
|
-
queries.push(`ALTER TABLE ${asName(tableName)} DROP CONSTRAINT ${asName(constraintName)};`);
|
|
295
|
-
}
|
|
296
|
-
if (!existingConstraint || canDrop) {
|
|
297
|
-
queries.push(`ALTER TABLE ${asName(tableName)} ADD CONSTRAINT ${asName(constraintName)} ${constraintDef} ;`);
|
|
298
|
-
}
|
|
299
|
-
});
|
|
300
|
-
}
|
|
305
|
+
queries.push(...constraintQueries ?? []);
|
|
301
306
|
if ("indexes" in tableConf && tableConf.indexes) {
|
|
302
307
|
/*
|
|
303
308
|
CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ [ IF NOT EXISTS ] name ] ON [ ONLY ] table_name [ USING method ]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableConfig.js","sourceRoot":"","sources":["../../lib/TableConfig/TableConfig.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TableConfig.js","sourceRoot":"","sources":["../../lib/TableConfig/TableConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ type Args = {
|
|
|
10
10
|
/**
|
|
11
11
|
* Column create statement for a given config
|
|
12
12
|
*/
|
|
13
|
-
export declare const getColumnDefinitionQuery: ({ colConf, column, db, table }: Args) => Promise<string>;
|
|
13
|
+
export declare const getColumnDefinitionQuery: ({ colConf: colConfRaw, column, db, table }: Args) => Promise<string | undefined>;
|
|
14
14
|
export type ColConstraint = {
|
|
15
15
|
name: string;
|
|
16
16
|
table: string;
|
|
@@ -27,5 +27,17 @@ type ColConstraintsArgs = {
|
|
|
27
27
|
};
|
|
28
28
|
export declare const getColConstraintsQuery: ({ column, table, types }: Omit<ColConstraintsArgs, "db">) => string;
|
|
29
29
|
export declare const getColConstraints: ({ db, column, table, types }: ColConstraintsArgs) => Promise<ColConstraint[]>;
|
|
30
|
+
export type ColumnMinimalInfo = {
|
|
31
|
+
table_name: string;
|
|
32
|
+
table_schema: string;
|
|
33
|
+
column_name: string;
|
|
34
|
+
column_default: string | null;
|
|
35
|
+
udt_name: string;
|
|
36
|
+
nullable: boolean;
|
|
37
|
+
};
|
|
38
|
+
export declare const getTableColumns: ({ db, tableName }: {
|
|
39
|
+
db: DB;
|
|
40
|
+
tableName: string;
|
|
41
|
+
}) => Promise<ColumnMinimalInfo[]>;
|
|
30
42
|
export {};
|
|
31
43
|
//# sourceMappingURL=getColumnDefinitionQuery.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getColumnDefinitionQuery.d.ts","sourceRoot":"","sources":["../../lib/TableConfig/getColumnDefinitionQuery.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAGlC,OAAO,EAAmB,YAAY,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,KAAK,IAAI,GAAG;IACV,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,YAAY,CAAC;IACtB,EAAE,EAAE,EAAE,CAAC;IACP,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,
|
|
1
|
+
{"version":3,"file":"getColumnDefinitionQuery.d.ts","sourceRoot":"","sources":["../../lib/TableConfig/getColumnDefinitionQuery.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAGlC,OAAO,EAAmB,YAAY,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,KAAK,IAAI,GAAG;IACV,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,YAAY,CAAC;IACtB,EAAE,EAAE,EAAE,CAAC;IACP,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,+CAAsD,IAAI,KAAG,QAAQ,MAAM,GAAG,SAAS,CAiF3H,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAC5B,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAA;AACD,KAAK,kBAAkB,GAAG;IACxB,EAAE,EAAE,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;CACjC,CAAA;AACD,eAAO,MAAM,sBAAsB,6BAA8B,KAAK,kBAAkB,EAAE,IAAI,CAAC,WAyB9F,CAAA;AACD,eAAO,MAAM,iBAAiB,iCAAkC,kBAAkB,KAAI,QAAQ,aAAa,EAAE,CAG5G,CAAA;AACD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AACF,eAAO,MAAM,eAAe;;eAA4C,MAAM;MAAK,QAAQ,iBAAiB,EAAE,CAS7G,CAAA"}
|
|
@@ -1,30 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getColConstraints = exports.getColConstraintsQuery = exports.getColumnDefinitionQuery = void 0;
|
|
3
|
+
exports.getTableColumns = exports.getColConstraints = exports.getColConstraintsQuery = exports.getColumnDefinitionQuery = void 0;
|
|
4
4
|
const prostgles_types_1 = require("prostgles-types");
|
|
5
5
|
const PubSubManager_1 = require("../PubSubManager/PubSubManager");
|
|
6
6
|
const validate_jsonb_schema_sql_1 = require("../JSONBValidation/validate_jsonb_schema_sql");
|
|
7
7
|
/**
|
|
8
8
|
* Column create statement for a given config
|
|
9
9
|
*/
|
|
10
|
-
const getColumnDefinitionQuery = async ({ colConf, column, db, table }) => {
|
|
10
|
+
const getColumnDefinitionQuery = async ({ colConf: colConfRaw, column, db, table }) => {
|
|
11
|
+
const colConf = typeof colConfRaw === "string" ? { sqlDefinition: colConfRaw } : colConfRaw;
|
|
11
12
|
const colNameEsc = (0, prostgles_types_1.asName)(column);
|
|
12
13
|
const getColTypeDef = (colConf, pgType) => {
|
|
13
14
|
const { nullable, defaultValue } = colConf;
|
|
14
15
|
return `${pgType} ${!nullable ? " NOT NULL " : ""} ${defaultValue ? ` DEFAULT ${(0, PubSubManager_1.asValue)(defaultValue)} ` : ""}`;
|
|
15
16
|
};
|
|
16
|
-
const jsonbSchema = (
|
|
17
|
+
const jsonbSchema = ("jsonbSchema" in colConf && colConf.jsonbSchema) ? { jsonbSchema: colConf.jsonbSchema, jsonbSchemaType: undefined } :
|
|
17
18
|
("jsonbSchemaType" in colConf && colConf.jsonbSchemaType) ? { jsonbSchema: undefined, jsonbSchemaType: colConf.jsonbSchemaType } :
|
|
18
|
-
undefined
|
|
19
|
-
|
|
20
|
-
if ((0, prostgles_types_1.isObject)(colConf) && "references" in colConf && colConf.references) {
|
|
19
|
+
undefined;
|
|
20
|
+
if ("references" in colConf && colConf.references) {
|
|
21
21
|
const { tableName: lookupTable, columnName: lookupCol = "id" } = colConf.references;
|
|
22
22
|
return ` ${colNameEsc} ${getColTypeDef(colConf.references, "TEXT")} REFERENCES ${lookupTable} (${lookupCol}) `;
|
|
23
23
|
}
|
|
24
|
-
else if (
|
|
25
|
-
return ` ${colNameEsc} ${
|
|
24
|
+
else if ("sqlDefinition" in colConf && colConf.sqlDefinition) {
|
|
25
|
+
return ` ${colNameEsc} ${colConf.sqlDefinition} `;
|
|
26
26
|
}
|
|
27
|
-
else if (
|
|
27
|
+
else if ("isText" in colConf && colConf.isText) {
|
|
28
28
|
let checks = "";
|
|
29
29
|
const colChecks = [];
|
|
30
30
|
if (colConf.lowerCased) {
|
|
@@ -77,7 +77,8 @@ const getColumnDefinitionQuery = async ({ colConf, column, db, table }) => {
|
|
|
77
77
|
return ` ${colNameEsc} ${type} ${colConf.nullable ? "" : "NOT NULL"} ${"defaultValue" in colConf ? ` DEFAULT ${(0, PubSubManager_1.asValue)(colConf.defaultValue)}` : ""} CHECK(${checks})`;
|
|
78
78
|
}
|
|
79
79
|
else {
|
|
80
|
-
|
|
80
|
+
return undefined;
|
|
81
|
+
// throw "Unknown column config: " + JSON.stringify(colConf);
|
|
81
82
|
}
|
|
82
83
|
};
|
|
83
84
|
exports.getColumnDefinitionQuery = getColumnDefinitionQuery;
|
|
@@ -115,4 +116,15 @@ const getColConstraints = ({ db, column, table, types }) => {
|
|
|
115
116
|
return db.manyOrNone((0, exports.getColConstraintsQuery)({ column, table, types }));
|
|
116
117
|
};
|
|
117
118
|
exports.getColConstraints = getColConstraints;
|
|
119
|
+
const getTableColumns = ({ db, tableName }) => {
|
|
120
|
+
return db.manyOrNone(`
|
|
121
|
+
SELECT table_name,
|
|
122
|
+
table_schema, column_name,
|
|
123
|
+
column_default, udt_name,
|
|
124
|
+
is_nullable = 'YES' as nullable
|
|
125
|
+
FROM information_schema.columns
|
|
126
|
+
WHERE table_name = $1
|
|
127
|
+
`, [tableName]);
|
|
128
|
+
};
|
|
129
|
+
exports.getTableColumns = getTableColumns;
|
|
118
130
|
//# sourceMappingURL=getColumnDefinitionQuery.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getColumnDefinitionQuery.js","sourceRoot":"","sources":["../../lib/TableConfig/getColumnDefinitionQuery.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"getColumnDefinitionQuery.js","sourceRoot":"","sources":["../../lib/TableConfig/getColumnDefinitionQuery.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { TableConfig } from "./TableConfig";
|
|
2
|
+
type Args = {
|
|
3
|
+
tableName: string;
|
|
4
|
+
tableConf: TableConfig[string];
|
|
5
|
+
};
|
|
6
|
+
export declare const getConstraintDefinitionQueries: ({ tableConf, tableName }: Args) => string[] | undefined;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=getConstraintDefinitionQueries.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getConstraintDefinitionQueries.d.ts","sourceRoot":"","sources":["../../lib/TableConfig/getConstraintDefinitionQueries.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,KAAK,IAAI,GAAG;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;CAE/B,CAAC;AAEF,eAAO,MAAM,8BAA8B,6BAA8B,IAAI,KAAG,MAAM,EAAE,GAAG,SA2B1F,CAAA"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getConstraintDefinitionQueries = void 0;
|
|
4
|
+
const prostgles_types_1 = require("prostgles-types");
|
|
5
|
+
const getConstraintDefinitionQueries = ({ tableConf, tableName }) => {
|
|
6
|
+
if ("constraints" in tableConf && tableConf.constraints) {
|
|
7
|
+
const { constraints } = tableConf;
|
|
8
|
+
if (!constraints) {
|
|
9
|
+
return undefined;
|
|
10
|
+
}
|
|
11
|
+
const queries = [];
|
|
12
|
+
if (Array.isArray(constraints)) {
|
|
13
|
+
return constraints.map(c => `ALTER TABLE ${(0, prostgles_types_1.asName)(tableName)} ADD ${c}`);
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
const constraintNames = (0, prostgles_types_1.getKeys)(tableConf.constraints);
|
|
17
|
+
constraintNames.map(constraintName => {
|
|
18
|
+
const _cnstr = constraints[constraintName];
|
|
19
|
+
const constraintDef = typeof _cnstr === "string" ? _cnstr : `${_cnstr.type} (${_cnstr.content})`;
|
|
20
|
+
/** Drop constraints with the same name */
|
|
21
|
+
// const existingConstraint = constraints.some(c => c.conname === constraintName);
|
|
22
|
+
// if(existingConstraint){
|
|
23
|
+
// if(canDrop) queries.push(`ALTER TABLE ${asName(tableName)} DROP CONSTRAINT ${asName(constraintName)};`);
|
|
24
|
+
// }
|
|
25
|
+
queries.push(`ALTER TABLE ${(0, prostgles_types_1.asName)(tableName)} ADD CONSTRAINT ${(0, prostgles_types_1.asName)(constraintName)} ${constraintDef} ;`);
|
|
26
|
+
});
|
|
27
|
+
return queries;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
exports.getConstraintDefinitionQueries = getConstraintDefinitionQueries;
|
|
32
|
+
//# sourceMappingURL=getConstraintDefinitionQueries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getConstraintDefinitionQueries.js","sourceRoot":"","sources":["../../lib/TableConfig/getConstraintDefinitionQueries.ts"],"names":[],"mappings":";;;AAAA,qDAAkD;AAS3C,MAAM,8BAA8B,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAQ,EAAwB,EAAE;IAErG,IAAI,aAAa,IAAI,SAAS,IAAI,SAAS,CAAC,WAAW,EAAE;QACvD,MAAM,EAAE,WAAW,EAAE,GAAG,SAAS,CAAC;QAClC,IAAG,CAAC,WAAW,EAAC;YACd,OAAO,SAAS,CAAC;SAClB;QACD,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,IAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAC;YAC5B,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,eAAe,IAAA,wBAAM,EAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;SAC1E;aAAM;YACL,MAAM,eAAe,GAAG,IAAA,yBAAO,EAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACvD,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE;gBACnC,MAAM,MAAM,GAAG,WAAW,CAAC,cAAc,CAAC,CAAC;gBAC3C,MAAM,aAAa,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAA,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,OAAO,GAAG,CAAC;gBAEhG,0CAA0C;gBAC1C,kFAAkF;gBAClF,0BAA0B;gBAC1B,6GAA6G;gBAC7G,IAAI;gBAEJ,OAAO,CAAC,IAAI,CAAC,eAAe,IAAA,wBAAM,EAAC,SAAS,CAAC,mBAAmB,IAAA,wBAAM,EAAC,cAAc,CAAC,IAAI,aAAa,IAAI,CAAC,CAAC;YAC/G,CAAC,CAAC,CAAC;YACH,OAAO,OAAO,CAAC;SAChB;KACF;AACH,CAAC,CAAA;AA3BY,QAAA,8BAA8B,kCA2B1C"}
|
|
@@ -162,11 +162,11 @@ type UnionKeys<T> = T extends T ? keyof T : never;
|
|
|
162
162
|
type StrictUnionHelper<T, TAll> = T extends any ? T & Partial<Record<Exclude<UnionKeys<TAll>, keyof T>, never>> : never;
|
|
163
163
|
export type StrictUnion<T> = StrictUnionHelper<T, T>;
|
|
164
164
|
export declare const CONSTRAINT_TYPES: readonly ["PRIMARY KEY", "UNIQUE", "CHECK"];
|
|
165
|
-
type TableDefinition<LANG_IDS> = {
|
|
165
|
+
export type TableDefinition<LANG_IDS> = {
|
|
166
166
|
columns?: {
|
|
167
167
|
[column_name: string]: ColumnConfig<LANG_IDS>;
|
|
168
168
|
};
|
|
169
|
-
constraints?: {
|
|
169
|
+
constraints?: string[] | {
|
|
170
170
|
[constraint_name: string]: string | {
|
|
171
171
|
type: typeof CONSTRAINT_TYPES[number];
|
|
172
172
|
dropIfExists?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableConfig.d.ts","sourceRoot":"","sources":["TableConfig.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"TableConfig.d.ts","sourceRoot":"","sources":["TableConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,SAAS,EAAE,SAAS,EAAG,iBAAiB,EAAE,oBAAoB,EAAY,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC1J,OAAO,EAAiB,QAAQ,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAM9D,KAAK,YAAY,GAAG;IAClB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,QAAQ,IAAI;KACjC,OAAO,IAAI,MAAM,QAAQ,GAAG,MAAM;CACpC,CAAA;AAED,eAAO,MAAM,SAAS;;;;;kBAiBrB,CAAA;AAED,KAAK,mBAAmB,CAAC,QAAQ,GAAG,SAAS,IAAI;IAC/C,IAAI,CAAC,EAAE;QACL,KAAK,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;KACxC,CAAA;IACD,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE;QACT,CAAC,WAAW,EAAE,MAAM,GAAG;YACrB;;eAEG;YACH,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,YAAY,CAAC;YACxC,OAAO,EAAE,CAAC,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAC;YAC5C,OAAO,EAAE,WAAW,GAAG,KAAK,CAAC;YAC7B;;;;;;;;;;;;;;;;;;;eAmBG;YACH,KAAK,EAAE,MAAM,CAAC;SACf,CAAA;KACF,CAAC;CACH,CAAA;AAED,KAAK,qBAAqB,CAAC,QAAQ,IAAI;IACrC,aAAa,EAAE;QACb,MAAM,EAAE;YACN,CAAC,QAAQ,EAAE,MAAM,GAAG,EAAE,GAAG;iBACtB,OAAO,IAAI,MAAM,QAAQ,GAAG,MAAM;aACpC,CAAA;SACF,CAAA;KACF,CAAA;CACF,CAAA;AAED,MAAM,MAAM,UAAU,CAAC,QAAQ,IAAI;IACjC;;OAEG;IACH,IAAI,CAAC,EAAE,YAAY,CAAC;IAEpB,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;SAAG,OAAO,IAAI,MAAM,QAAQ,GAAG,MAAM;KAAG,CAAC,CAAC;CACpE,CAAA;AAED,KAAK,YAAY,GAAG;IAElB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAA;AAED,KAAK,UAAU,GAAG,eAAe,GAAG;IAClC,MAAM,EAAE,IAAI,CAAC;IACb;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG,CAAC,eAAe,GAAG,EAK/C,CAAC,GAAG,CAAC;IACJ,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC;IAC/B,eAAe,CAAC,EAAE,SAAS,CAAC;CAC7B,GAAG;IACF,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,eAAe,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;CAC3C,CAAC,CAAA;AAEF;;;GAGG;AACH,KAAK,WAAW,GAAG,CAAC;IAElB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC;CACvB,GAAG,CACA;IAEE;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;CAC/G,GACD;IACE,iBAAiB,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAA;CAC1D,CACF,CAAC,CAAC;AAEL,KAAK,gBAAgB,GAAG;IAEtB;;OAEG;IACH,UAAU,CAAC,EAAE,eAAe,GAAG;QAG7B,SAAS,EAAE,MAAM,CAAC;QAElB;;WAEG;QACH,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAA;CACF,CAAA;AAED,KAAK,OAAO,GAAG;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,EAAE,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;CACrC,CAAA;AAED;;GAEG;AACH,KAAK,eAAe,GAAG;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,EAAE,CAAC;CACpB,CAAA;AAED,KAAK,IAAI,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,GAAG,IAAI;IAC3C,IAAI,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,CAAC,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,YAAY,CAAC,QAAQ,GAAG;IAAE,EAAE,EAAE,CAAC,CAAA;CAAE,IAAI,MAAM,GAAG,WAAW,CAAC,eAAe,GAAG,WAAW,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,GAAG,gBAAgB,GAAG,UAAU,GAAG,cAAc,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAEvM,MAAM,MAAM,aAAa,CAAC,QAAQ,GAAG;IAAE,EAAE,EAAE,CAAC,CAAA;CAAE,IAAI;IAChD,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC;IAClD,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,eAAe,CAAC;IAC7C,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,WAAW,CAAC;IAC1C,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,gBAAgB,CAAC;IACpD,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC;IACxC,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,cAAc,CAAC;IAC7C,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;CACnC,CAAA;AAED,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,GAAG,KAAK,CAAC;AAClD,KAAK,iBAAiB,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC;AACxH,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAEpD,eAAO,MAAM,gBAAgB,6CAA8C,CAAC;AAC5E,MAAM,MAAM,eAAe,CAAC,QAAQ,IAAI;IACtC,OAAO,CAAC,EAAE;QACR,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;KAC9C,CAAC;IACF,WAAW,CAAC,EACR,MAAM,EAAE,GACR;QACA,CAAC,eAAe,EAAE,MAAM,GACpB,MAAM,GACN;YACE,IAAI,EAAE,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;YACtC,YAAY,CAAC,EAAE,OAAO,CAAC;YACvB;;;;;eAKG;YACH,OAAO,EAAE,MAAM,CAAC;SACjB,CAAA;KAUR,CAAC;IAEF;;OAEG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,OAAO,CAAC,EAAE;QACR,CAAC,UAAU,EAAE,MAAM,GAAG;YAEpB;;;eAGG;YACH,OAAO,CAAC,EAAE,OAAO,CAAC;YAElB;;;eAGG;YACH,MAAM,CAAC,EAAE,OAAO,CAAC;YAEjB;;;;eAIG;YACH,YAAY,CAAC,EAAE,OAAO,CAAC;YAEvB;;eAEG;YAGH;;;eAGG;YACH,OAAO,EAAE,MAAM,CAAC;YAEhB;;;;eAIG;YACH,KAAK,CAAC,EAAE,MAAM,CAAC;YAEf;;;eAGG;YACH,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;SAC3C,CAAA;KACF,CAAA;CACF,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,CAAC,QAAQ,GAAG;IAAE,EAAE,EAAE,CAAC,CAAA;CAAE,IAAI;IAC9C,CAAC,UAAU,EAAE,MAAM,GAAG,mBAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAAC;CACrH,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,iBAAiB,CAAC,QAAQ,GAAG;IAAE,EAAE,EAAE,CAAC,CAAA;CAAE;IAEzD,MAAM,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC/B,IAAI,GAAG,IAAI,eAAe,CAGzB;IACD,IAAI,EAAE,IAAI,EAAE,CAGX;IAED,SAAS,EAAE,SAAS,CAAA;gBAER,SAAS,EAAE,SAAS;IAKhC,eAAe,cAAe,MAAM,WAAW,MAAM,KAAG,YAAY,GAAG,SAAS,CAM/E;IAED,YAAY,WAAY;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,KAAG,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,CAM3F;IAED,UAAU,WAAY;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,KAAG,CAAC,YAAY,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;KAAE,GAAG,KAAK,UAAU,EAAE,aAAa,CAAC,CAAC,GAAG,SAAS,CAqCvJ;IAED,WAAW,WAAY;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,GAAG,CAAA;KAAE,KAAG,IAAI,CAQvE;IAED,WAAW,gBAAiB,MAAM,eAAe,MAAM,KAAG,QAAQ,GAAG,SAAS,CA4B7E;IAEK,IAAI;IAoTV,GAAG,YAAa,GAAG,EAAE,UAIpB;CAEF"}
|
|
@@ -6,6 +6,7 @@ const DboBuilder_1 = require("../DboBuilder");
|
|
|
6
6
|
const PubSubManager_1 = require("../PubSubManager/PubSubManager");
|
|
7
7
|
const validate_jsonb_schema_sql_1 = require("../JSONBValidation/validate_jsonb_schema_sql");
|
|
8
8
|
const getColumnDefinitionQuery_1 = require("./getColumnDefinitionQuery");
|
|
9
|
+
const getConstraintDefinitionQueries_1 = require("./getConstraintDefinitionQueries");
|
|
9
10
|
const parseI18N = (params) => {
|
|
10
11
|
const { config, lang, defaultLang, defaultValue } = params;
|
|
11
12
|
if (config) {
|
|
@@ -193,6 +194,7 @@ class TableConfigurator {
|
|
|
193
194
|
/* Create/Alter columns */
|
|
194
195
|
for await (const tableName of (0, prostgles_types_1.getKeys)(this.config)) {
|
|
195
196
|
const tableConf = this.config[tableName];
|
|
197
|
+
const constraintQueries = (0, getConstraintDefinitionQueries_1.getConstraintDefinitionQueries)({ tableName, tableConf: tableConf });
|
|
196
198
|
if ("columns" in tableConf) {
|
|
197
199
|
const colCreateLines = [];
|
|
198
200
|
const tableHandler = this.dbo[tableName];
|
|
@@ -204,12 +206,7 @@ class TableConfigurator {
|
|
|
204
206
|
/** Must install validation function */
|
|
205
207
|
if (hasJSONBValidation) {
|
|
206
208
|
try {
|
|
207
|
-
|
|
208
|
-
/* prevent duplicate key value violates unique constraint "pg_namespace_nspname_index" Key (nspname)=(prostgles) already exists.*/
|
|
209
|
-
LOCK TABLE pg_catalog.pg_namespace IN SHARE ROW EXCLUSIVE MODE;
|
|
210
|
-
CREATE SCHEMA IF NOT EXISTS prostgles;\n
|
|
211
|
-
${validate_jsonb_schema_sql_1.validate_jsonb_schema_sql}`;
|
|
212
|
-
await this.db.any(fileContent);
|
|
209
|
+
await this.db.any(validate_jsonb_schema_sql_1.validate_jsonb_schema_sql);
|
|
213
210
|
}
|
|
214
211
|
catch (err) {
|
|
215
212
|
console.error("Could not install the jsonb validation function due to error: ", err);
|
|
@@ -225,14 +222,16 @@ class TableConfigurator {
|
|
|
225
222
|
for await (const colName of columns) {
|
|
226
223
|
const colConf = tableConf.columns[colName];
|
|
227
224
|
/* Add column to create statement */
|
|
228
|
-
|
|
229
|
-
|
|
225
|
+
const colDef = await (0, getColumnDefinitionQuery_1.getColumnDefinitionQuery)({ colConf, column: colName, db: this.db, table: tableName });
|
|
226
|
+
if (!colDef) {
|
|
227
|
+
// Column has only labels
|
|
228
|
+
}
|
|
229
|
+
else if (!tableHandler) {
|
|
230
230
|
columnDefs.push(colDef);
|
|
231
231
|
colCreateLines.push(colDef);
|
|
232
232
|
/** Alter existing column */
|
|
233
233
|
}
|
|
234
234
|
else if (tableHandler && !tableHandler.columns?.find(c => colName === c.name)) {
|
|
235
|
-
const colDef = await (0, getColumnDefinitionQuery_1.getColumnDefinitionQuery)({ colConf, column: colName, db: this.db, table: tableName });
|
|
236
235
|
columnDefs.push(colDef);
|
|
237
236
|
queries.push(`
|
|
238
237
|
ALTER TABLE ${asName(tableName)}
|
|
@@ -250,21 +249,44 @@ class TableConfigurator {
|
|
|
250
249
|
/** Remove droped/altered constraints */
|
|
251
250
|
if (tableHandler && columnDefs.length) {
|
|
252
251
|
let newConstraints = [];
|
|
252
|
+
let newCols = [];
|
|
253
253
|
try {
|
|
254
254
|
await this.db.tx(async (t) => {
|
|
255
255
|
const { v } = await t.one("SELECT md5(random()::text) as v");
|
|
256
256
|
const randomTableName = `prostgles_constr_${v}`;
|
|
257
|
-
|
|
257
|
+
const columnDefsWithoutReferences = columnDefs.map(cdef => {
|
|
258
|
+
return cdef.slice(0, cdef.toLowerCase().indexOf(" references "));
|
|
259
|
+
});
|
|
260
|
+
await t.any(`CREATE TABLE ${randomTableName} ( \n${columnDefsWithoutReferences.join(",\n")}\n );\n` +
|
|
261
|
+
(constraintQueries ?? []).join("\n"));
|
|
258
262
|
newConstraints = await (0, getColumnDefinitionQuery_1.getColConstraints)({ db: t, table: randomTableName });
|
|
263
|
+
newCols = await (0, getColumnDefinitionQuery_1.getTableColumns)({ db: this.db, tableName });
|
|
259
264
|
return Promise.reject("Done");
|
|
260
265
|
});
|
|
261
266
|
}
|
|
262
267
|
catch (e) {
|
|
263
268
|
}
|
|
269
|
+
const ALTER_TABLE_Q = `ALTER TABLE ${asName(tableName)}`;
|
|
264
270
|
const currConstraints = await (0, getColumnDefinitionQuery_1.getColConstraints)({ db: this.db, table: tableName });
|
|
265
271
|
currConstraints.forEach(c => {
|
|
266
272
|
if (!newConstraints.some(nc => nc.type === c.type && nc.definition === c.definition && nc.cols.sort().join() === c.cols.sort().join())) {
|
|
267
|
-
queries.unshift(
|
|
273
|
+
queries.unshift(`${ALTER_TABLE_Q} DROP CONSTRAINT ${asName(c.name)} CASCADE;`);
|
|
274
|
+
}
|
|
275
|
+
});
|
|
276
|
+
const currCols = await (0, getColumnDefinitionQuery_1.getTableColumns)({ db: this.db, tableName });
|
|
277
|
+
currCols.forEach(c => {
|
|
278
|
+
const newCol = newCols.find(nc => nc.column_name === c.column_name);
|
|
279
|
+
if (!newCol) {
|
|
280
|
+
queries.push(`${ALTER_TABLE_Q} DROP COLUMN ${asName(c.column_name)} CASCADE;`);
|
|
281
|
+
}
|
|
282
|
+
else if (newCol.nullable !== c.nullable) {
|
|
283
|
+
queries.push(`${ALTER_TABLE_Q} ALTER COLUMN ${asName(c.column_name)} ${newCol.nullable ? "SET" : "DROP"} NOT NULL;`);
|
|
284
|
+
}
|
|
285
|
+
else if (newCol.udt_name !== c.udt_name) {
|
|
286
|
+
queries.push(`${ALTER_TABLE_Q} ALTER COLUMN ${asName(c.column_name)} TYPE ${newCol.udt_name};`);
|
|
287
|
+
}
|
|
288
|
+
else if (newCol.column_default !== c.column_default) {
|
|
289
|
+
queries.push(`${ALTER_TABLE_Q} ALTER COLUMN ${asName(c.column_name)} ${newCol.column_default === null ? "DROP DEFAULT" : `SET DEFAULT ${newCol.column_default}`};`);
|
|
268
290
|
}
|
|
269
291
|
});
|
|
270
292
|
}
|
|
@@ -278,24 +300,7 @@ class TableConfigurator {
|
|
|
278
300
|
this.log("TableConfigurator: Created table: \n" + queries.at(-1));
|
|
279
301
|
}
|
|
280
302
|
}
|
|
281
|
-
|
|
282
|
-
const constraints = await getTableConstraings(this.db, tableName);
|
|
283
|
-
const constraintNames = (0, prostgles_types_1.getKeys)(tableConf.constraints);
|
|
284
|
-
constraintNames.map(constraintName => {
|
|
285
|
-
const _cnstr = tableConf.constraints[constraintName];
|
|
286
|
-
const constraintDef = typeof _cnstr === "string" ? _cnstr : `${_cnstr.type} (${_cnstr.content})`;
|
|
287
|
-
const canDrop = (0, prostgles_types_1.isObject)(_cnstr) && _cnstr.dropIfExists;
|
|
288
|
-
/** Drop constraints with the same name */
|
|
289
|
-
const existingConstraint = constraints.some(c => c.conname === constraintName);
|
|
290
|
-
if (existingConstraint) {
|
|
291
|
-
if (canDrop)
|
|
292
|
-
queries.push(`ALTER TABLE ${asName(tableName)} DROP CONSTRAINT ${asName(constraintName)};`);
|
|
293
|
-
}
|
|
294
|
-
if (!existingConstraint || canDrop) {
|
|
295
|
-
queries.push(`ALTER TABLE ${asName(tableName)} ADD CONSTRAINT ${asName(constraintName)} ${constraintDef} ;`);
|
|
296
|
-
}
|
|
297
|
-
});
|
|
298
|
-
}
|
|
303
|
+
queries.push(...constraintQueries ?? []);
|
|
299
304
|
if ("indexes" in tableConf && tableConf.indexes) {
|
|
300
305
|
/*
|
|
301
306
|
CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ [ IF NOT EXISTS ] name ] ON [ ONLY ] table_name [ USING method ]
|
|
@@ -3,8 +3,8 @@ import { isPlainObject, JoinInfo } from "../DboBuilder";
|
|
|
3
3
|
import { DB, DBHandlerServer, Prostgles } from "../Prostgles";
|
|
4
4
|
import { asValue } from "../PubSubManager/PubSubManager";
|
|
5
5
|
import { validate_jsonb_schema_sql } from "../JSONBValidation/validate_jsonb_schema_sql";
|
|
6
|
-
import { ColConstraint, getColConstraints, getColumnDefinitionQuery } from "./getColumnDefinitionQuery";
|
|
7
|
-
import {
|
|
6
|
+
import { ColConstraint, ColumnMinimalInfo, getColConstraints, getColumnDefinitionQuery, getTableColumns } from "./getColumnDefinitionQuery";
|
|
7
|
+
import { getConstraintDefinitionQueries } from "./getConstraintDefinitionQueries";
|
|
8
8
|
|
|
9
9
|
type ColExtraInfo = {
|
|
10
10
|
min?: string | number;
|
|
@@ -208,33 +208,35 @@ type StrictUnionHelper<T, TAll> = T extends any ? T & Partial<Record<Exclude<Uni
|
|
|
208
208
|
export type StrictUnion<T> = StrictUnionHelper<T, T>
|
|
209
209
|
|
|
210
210
|
export const CONSTRAINT_TYPES = ["PRIMARY KEY", "UNIQUE", "CHECK"] as const; // "FOREIGN KEY",
|
|
211
|
-
type TableDefinition<LANG_IDS> = {
|
|
211
|
+
export type TableDefinition<LANG_IDS> = {
|
|
212
212
|
columns?: {
|
|
213
213
|
[column_name: string]: ColumnConfig<LANG_IDS>
|
|
214
214
|
},
|
|
215
|
-
constraints?:
|
|
216
|
-
|
|
217
|
-
|
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
215
|
+
constraints?:
|
|
216
|
+
| string[]
|
|
217
|
+
| {
|
|
218
|
+
[constraint_name: string]:
|
|
219
|
+
| string
|
|
220
|
+
| {
|
|
221
|
+
type: typeof CONSTRAINT_TYPES[number];
|
|
222
|
+
dropIfExists?: boolean;
|
|
223
|
+
/**
|
|
224
|
+
* E.g.:
|
|
225
|
+
* colname
|
|
226
|
+
* col1, col2
|
|
227
|
+
* col1 > col3
|
|
228
|
+
*/
|
|
229
|
+
content: string;
|
|
230
|
+
}
|
|
231
|
+
// & ({
|
|
232
|
+
// }
|
|
233
|
+
// | {
|
|
234
|
+
// type: "FOREIGN KEY",
|
|
235
|
+
// columns: string[];
|
|
236
|
+
// ftable: string;
|
|
237
|
+
// fcols: string[];
|
|
238
|
+
// }
|
|
239
|
+
// )
|
|
238
240
|
},
|
|
239
241
|
|
|
240
242
|
/**
|
|
@@ -492,6 +494,7 @@ export default class TableConfigurator<LANG_IDS = { en: 1 }> {
|
|
|
492
494
|
/* Create/Alter columns */
|
|
493
495
|
for await (const tableName of getKeys(this.config)){
|
|
494
496
|
const tableConf = this.config![tableName];
|
|
497
|
+
const constraintQueries = getConstraintDefinitionQueries({ tableName, tableConf: tableConf as any });
|
|
495
498
|
if ("columns" in tableConf) {
|
|
496
499
|
const colCreateLines: string[] = [];
|
|
497
500
|
const tableHandler = this.dbo[tableName];
|
|
@@ -504,13 +507,7 @@ export default class TableConfigurator<LANG_IDS = { en: 1 }> {
|
|
|
504
507
|
/** Must install validation function */
|
|
505
508
|
if(hasJSONBValidation){
|
|
506
509
|
try {
|
|
507
|
-
|
|
508
|
-
const fileContent = `
|
|
509
|
-
/* prevent duplicate key value violates unique constraint "pg_namespace_nspname_index" Key (nspname)=(prostgles) already exists.*/
|
|
510
|
-
LOCK TABLE pg_catalog.pg_namespace IN SHARE ROW EXCLUSIVE MODE;
|
|
511
|
-
CREATE SCHEMA IF NOT EXISTS prostgles;\n
|
|
512
|
-
${validate_jsonb_schema_sql}`;
|
|
513
|
-
await this.db.any(fileContent);
|
|
510
|
+
await this.db.any(validate_jsonb_schema_sql);
|
|
514
511
|
} catch(err: any){
|
|
515
512
|
console.error("Could not install the jsonb validation function due to error: ", err);
|
|
516
513
|
throw err;
|
|
@@ -528,14 +525,15 @@ export default class TableConfigurator<LANG_IDS = { en: 1 }> {
|
|
|
528
525
|
const colConf = tableConf.columns![colName];
|
|
529
526
|
|
|
530
527
|
/* Add column to create statement */
|
|
531
|
-
|
|
532
|
-
|
|
528
|
+
const colDef = await getColumnDefinitionQuery({ colConf, column: colName, db: this.db, table: tableName });
|
|
529
|
+
if(!colDef){
|
|
530
|
+
// Column has only labels
|
|
531
|
+
} else if (!tableHandler) {
|
|
533
532
|
columnDefs.push(colDef);
|
|
534
533
|
colCreateLines.push(colDef);
|
|
535
534
|
|
|
536
535
|
/** Alter existing column */
|
|
537
536
|
} else if (tableHandler && !tableHandler.columns?.find(c => colName === c.name)) {
|
|
538
|
-
const colDef = await getColumnDefinitionQuery({ colConf, column: colName, db: this.db, table: tableName });
|
|
539
537
|
columnDefs.push(colDef);
|
|
540
538
|
|
|
541
539
|
queries.push(`
|
|
@@ -555,24 +553,47 @@ export default class TableConfigurator<LANG_IDS = { en: 1 }> {
|
|
|
555
553
|
/** Remove droped/altered constraints */
|
|
556
554
|
if(tableHandler && columnDefs.length){
|
|
557
555
|
let newConstraints: ColConstraint[] = [];
|
|
556
|
+
let newCols: ColumnMinimalInfo[] = [];
|
|
558
557
|
try {
|
|
559
558
|
await this.db.tx(async t => {
|
|
560
559
|
const { v } = await t.one("SELECT md5(random()::text) as v");
|
|
561
560
|
const randomTableName = `prostgles_constr_${v}`;
|
|
562
|
-
|
|
561
|
+
const columnDefsWithoutReferences = columnDefs.map(cdef => {
|
|
562
|
+
return cdef.slice(0, cdef.toLowerCase().indexOf(" references "));
|
|
563
|
+
});
|
|
564
|
+
await t.any(
|
|
565
|
+
`CREATE TABLE ${randomTableName} ( \n${columnDefsWithoutReferences.join(",\n")}\n );\n` +
|
|
566
|
+
(constraintQueries ?? []).join("\n")
|
|
567
|
+
);
|
|
563
568
|
newConstraints = await getColConstraints({ db: t, table: randomTableName });
|
|
569
|
+
newCols = await getTableColumns({ db: this.db, tableName });
|
|
564
570
|
return Promise.reject("Done");
|
|
565
571
|
});
|
|
566
572
|
|
|
567
573
|
} catch(e){
|
|
568
574
|
|
|
569
575
|
}
|
|
576
|
+
const ALTER_TABLE_Q = `ALTER TABLE ${asName(tableName)}`;
|
|
570
577
|
const currConstraints = await getColConstraints({ db: this.db, table: tableName });
|
|
571
578
|
currConstraints.forEach(c => {
|
|
572
579
|
if(!newConstraints.some(nc => nc.type === c.type && nc.definition === c.definition && nc.cols.sort().join() === c.cols.sort().join())){
|
|
573
|
-
queries.unshift(
|
|
580
|
+
queries.unshift(`${ALTER_TABLE_Q} DROP CONSTRAINT ${asName(c.name)} CASCADE;`);
|
|
574
581
|
}
|
|
575
582
|
});
|
|
583
|
+
|
|
584
|
+
const currCols = await getTableColumns({ db: this.db, tableName });
|
|
585
|
+
currCols.forEach(c => {
|
|
586
|
+
const newCol = newCols.find(nc => nc.column_name === c.column_name);
|
|
587
|
+
if(!newCol){
|
|
588
|
+
queries.push(`${ALTER_TABLE_Q} DROP COLUMN ${asName(c.column_name)} CASCADE;`)
|
|
589
|
+
} else if(newCol.nullable !== c.nullable){
|
|
590
|
+
queries.push(`${ALTER_TABLE_Q} ALTER COLUMN ${asName(c.column_name)} ${newCol.nullable? "SET" : "DROP"} NOT NULL;`)
|
|
591
|
+
} else if(newCol.udt_name !== c.udt_name){
|
|
592
|
+
queries.push(`${ALTER_TABLE_Q} ALTER COLUMN ${asName(c.column_name)} TYPE ${newCol.udt_name};`)
|
|
593
|
+
} else if(newCol.column_default !== c.column_default){
|
|
594
|
+
queries.push(`${ALTER_TABLE_Q} ALTER COLUMN ${asName(c.column_name)} ${newCol.column_default === null? "DROP DEFAULT" : `SET DEFAULT ${newCol.column_default}`};`)
|
|
595
|
+
}
|
|
596
|
+
})
|
|
576
597
|
}
|
|
577
598
|
}
|
|
578
599
|
|
|
@@ -585,23 +606,7 @@ export default class TableConfigurator<LANG_IDS = { en: 1 }> {
|
|
|
585
606
|
this.log("TableConfigurator: Created table: \n" + queries.at(-1))
|
|
586
607
|
}
|
|
587
608
|
}
|
|
588
|
-
|
|
589
|
-
const constraints = await getTableConstraings(this.db, tableName);
|
|
590
|
-
const constraintNames = getKeys(tableConf.constraints);
|
|
591
|
-
constraintNames.map(constraintName => {
|
|
592
|
-
const _cnstr = tableConf.constraints![constraintName];
|
|
593
|
-
const constraintDef = typeof _cnstr === "string"? _cnstr : `${_cnstr.type} (${_cnstr.content})`;
|
|
594
|
-
const canDrop = isObject(_cnstr) && _cnstr.dropIfExists;
|
|
595
|
-
/** Drop constraints with the same name */
|
|
596
|
-
const existingConstraint = constraints.some(c => c.conname === constraintName);
|
|
597
|
-
if(existingConstraint){
|
|
598
|
-
if(canDrop) queries.push(`ALTER TABLE ${asName(tableName)} DROP CONSTRAINT ${asName(constraintName)};`);
|
|
599
|
-
}
|
|
600
|
-
if(!existingConstraint || canDrop){
|
|
601
|
-
queries.push(`ALTER TABLE ${asName(tableName)} ADD CONSTRAINT ${asName(constraintName)} ${constraintDef} ;`);
|
|
602
|
-
}
|
|
603
|
-
});
|
|
604
|
-
}
|
|
609
|
+
queries.push(...constraintQueries ?? []);
|
|
605
610
|
if ("indexes" in tableConf && tableConf.indexes) {
|
|
606
611
|
/*
|
|
607
612
|
CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ [ IF NOT EXISTS ] name ] ON [ ONLY ] table_name [ USING method ]
|
|
@@ -10,7 +10,7 @@ type Args = {
|
|
|
10
10
|
/**
|
|
11
11
|
* Column create statement for a given config
|
|
12
12
|
*/
|
|
13
|
-
export declare const getColumnDefinitionQuery: ({ colConf, column, db, table }: Args) => Promise<string>;
|
|
13
|
+
export declare const getColumnDefinitionQuery: ({ colConf: colConfRaw, column, db, table }: Args) => Promise<string | undefined>;
|
|
14
14
|
export type ColConstraint = {
|
|
15
15
|
name: string;
|
|
16
16
|
table: string;
|
|
@@ -27,5 +27,17 @@ type ColConstraintsArgs = {
|
|
|
27
27
|
};
|
|
28
28
|
export declare const getColConstraintsQuery: ({ column, table, types }: Omit<ColConstraintsArgs, "db">) => string;
|
|
29
29
|
export declare const getColConstraints: ({ db, column, table, types }: ColConstraintsArgs) => Promise<ColConstraint[]>;
|
|
30
|
+
export type ColumnMinimalInfo = {
|
|
31
|
+
table_name: string;
|
|
32
|
+
table_schema: string;
|
|
33
|
+
column_name: string;
|
|
34
|
+
column_default: string | null;
|
|
35
|
+
udt_name: string;
|
|
36
|
+
nullable: boolean;
|
|
37
|
+
};
|
|
38
|
+
export declare const getTableColumns: ({ db, tableName }: {
|
|
39
|
+
db: DB;
|
|
40
|
+
tableName: string;
|
|
41
|
+
}) => Promise<ColumnMinimalInfo[]>;
|
|
30
42
|
export {};
|
|
31
43
|
//# sourceMappingURL=getColumnDefinitionQuery.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getColumnDefinitionQuery.d.ts","sourceRoot":"","sources":["getColumnDefinitionQuery.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAGlC,OAAO,EAAmB,YAAY,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,KAAK,IAAI,GAAG;IACV,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,YAAY,CAAC;IACtB,EAAE,EAAE,EAAE,CAAC;IACP,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,
|
|
1
|
+
{"version":3,"file":"getColumnDefinitionQuery.d.ts","sourceRoot":"","sources":["getColumnDefinitionQuery.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAGlC,OAAO,EAAmB,YAAY,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,KAAK,IAAI,GAAG;IACV,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,YAAY,CAAC;IACtB,EAAE,EAAE,EAAE,CAAC;IACP,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,+CAAsD,IAAI,KAAG,QAAQ,MAAM,GAAG,SAAS,CAiF3H,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAC5B,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAA;AACD,KAAK,kBAAkB,GAAG;IACxB,EAAE,EAAE,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;CACjC,CAAA;AACD,eAAO,MAAM,sBAAsB,6BAA8B,KAAK,kBAAkB,EAAE,IAAI,CAAC,WAyB9F,CAAA;AACD,eAAO,MAAM,iBAAiB,iCAAkC,kBAAkB,KAAI,QAAQ,aAAa,EAAE,CAG5G,CAAA;AACD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AACF,eAAO,MAAM,eAAe;;eAA4C,MAAM;MAAK,QAAQ,iBAAiB,EAAE,CAS7G,CAAA"}
|
|
@@ -1,30 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getColConstraints = exports.getColConstraintsQuery = exports.getColumnDefinitionQuery = void 0;
|
|
3
|
+
exports.getTableColumns = exports.getColConstraints = exports.getColConstraintsQuery = exports.getColumnDefinitionQuery = void 0;
|
|
4
4
|
const prostgles_types_1 = require("prostgles-types");
|
|
5
5
|
const PubSubManager_1 = require("../PubSubManager/PubSubManager");
|
|
6
6
|
const validate_jsonb_schema_sql_1 = require("../JSONBValidation/validate_jsonb_schema_sql");
|
|
7
7
|
/**
|
|
8
8
|
* Column create statement for a given config
|
|
9
9
|
*/
|
|
10
|
-
const getColumnDefinitionQuery = async ({ colConf, column, db, table }) => {
|
|
10
|
+
const getColumnDefinitionQuery = async ({ colConf: colConfRaw, column, db, table }) => {
|
|
11
|
+
const colConf = typeof colConfRaw === "string" ? { sqlDefinition: colConfRaw } : colConfRaw;
|
|
11
12
|
const colNameEsc = (0, prostgles_types_1.asName)(column);
|
|
12
13
|
const getColTypeDef = (colConf, pgType) => {
|
|
13
14
|
const { nullable, defaultValue } = colConf;
|
|
14
15
|
return `${pgType} ${!nullable ? " NOT NULL " : ""} ${defaultValue ? ` DEFAULT ${(0, PubSubManager_1.asValue)(defaultValue)} ` : ""}`;
|
|
15
16
|
};
|
|
16
|
-
const jsonbSchema = (
|
|
17
|
+
const jsonbSchema = ("jsonbSchema" in colConf && colConf.jsonbSchema) ? { jsonbSchema: colConf.jsonbSchema, jsonbSchemaType: undefined } :
|
|
17
18
|
("jsonbSchemaType" in colConf && colConf.jsonbSchemaType) ? { jsonbSchema: undefined, jsonbSchemaType: colConf.jsonbSchemaType } :
|
|
18
|
-
undefined
|
|
19
|
-
|
|
20
|
-
if ((0, prostgles_types_1.isObject)(colConf) && "references" in colConf && colConf.references) {
|
|
19
|
+
undefined;
|
|
20
|
+
if ("references" in colConf && colConf.references) {
|
|
21
21
|
const { tableName: lookupTable, columnName: lookupCol = "id" } = colConf.references;
|
|
22
22
|
return ` ${colNameEsc} ${getColTypeDef(colConf.references, "TEXT")} REFERENCES ${lookupTable} (${lookupCol}) `;
|
|
23
23
|
}
|
|
24
|
-
else if (
|
|
25
|
-
return ` ${colNameEsc} ${
|
|
24
|
+
else if ("sqlDefinition" in colConf && colConf.sqlDefinition) {
|
|
25
|
+
return ` ${colNameEsc} ${colConf.sqlDefinition} `;
|
|
26
26
|
}
|
|
27
|
-
else if (
|
|
27
|
+
else if ("isText" in colConf && colConf.isText) {
|
|
28
28
|
let checks = "";
|
|
29
29
|
const colChecks = [];
|
|
30
30
|
if (colConf.lowerCased) {
|
|
@@ -77,7 +77,8 @@ const getColumnDefinitionQuery = async ({ colConf, column, db, table }) => {
|
|
|
77
77
|
return ` ${colNameEsc} ${type} ${colConf.nullable ? "" : "NOT NULL"} ${"defaultValue" in colConf ? ` DEFAULT ${(0, PubSubManager_1.asValue)(colConf.defaultValue)}` : ""} CHECK(${checks})`;
|
|
78
78
|
}
|
|
79
79
|
else {
|
|
80
|
-
|
|
80
|
+
return undefined;
|
|
81
|
+
// throw "Unknown column config: " + JSON.stringify(colConf);
|
|
81
82
|
}
|
|
82
83
|
};
|
|
83
84
|
exports.getColumnDefinitionQuery = getColumnDefinitionQuery;
|
|
@@ -115,3 +116,14 @@ const getColConstraints = ({ db, column, table, types }) => {
|
|
|
115
116
|
return db.manyOrNone((0, exports.getColConstraintsQuery)({ column, table, types }));
|
|
116
117
|
};
|
|
117
118
|
exports.getColConstraints = getColConstraints;
|
|
119
|
+
const getTableColumns = ({ db, tableName }) => {
|
|
120
|
+
return db.manyOrNone(`
|
|
121
|
+
SELECT table_name,
|
|
122
|
+
table_schema, column_name,
|
|
123
|
+
column_default, udt_name,
|
|
124
|
+
is_nullable = 'YES' as nullable
|
|
125
|
+
FROM information_schema.columns
|
|
126
|
+
WHERE table_name = $1
|
|
127
|
+
`, [tableName]);
|
|
128
|
+
};
|
|
129
|
+
exports.getTableColumns = getTableColumns;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { asName,
|
|
1
|
+
import { asName, pickKeys } from "prostgles-types";
|
|
2
2
|
import { DB } from "../Prostgles";
|
|
3
3
|
import { asValue } from "../PubSubManager/PubSubManager";
|
|
4
4
|
import { VALIDATE_SCHEMA_FUNCNAME } from "../JSONBValidation/validate_jsonb_schema_sql";
|
|
@@ -15,7 +15,8 @@ type Args = {
|
|
|
15
15
|
/**
|
|
16
16
|
* Column create statement for a given config
|
|
17
17
|
*/
|
|
18
|
-
export const getColumnDefinitionQuery = async ({ colConf, column, db, table }: Args): Promise<string> => {
|
|
18
|
+
export const getColumnDefinitionQuery = async ({ colConf: colConfRaw, column, db, table }: Args): Promise<string | undefined> => {
|
|
19
|
+
const colConf = typeof colConfRaw === "string"? { sqlDefinition: colConfRaw } : colConfRaw;
|
|
19
20
|
const colNameEsc = asName(column);
|
|
20
21
|
const getColTypeDef = (colConf: BaseColumnTypes, pgType: "TEXT" | "JSONB") => {
|
|
21
22
|
const { nullable, defaultValue } = colConf;
|
|
@@ -23,23 +24,21 @@ export const getColumnDefinitionQuery = async ({ colConf, column, db, table }: A
|
|
|
23
24
|
}
|
|
24
25
|
|
|
25
26
|
const jsonbSchema =
|
|
26
|
-
isObject(colConf) ? (
|
|
27
27
|
("jsonbSchema" in colConf && colConf.jsonbSchema) ? { jsonbSchema: colConf.jsonbSchema, jsonbSchemaType: undefined } :
|
|
28
28
|
("jsonbSchemaType" in colConf && colConf.jsonbSchemaType) ? { jsonbSchema: undefined, jsonbSchemaType: colConf.jsonbSchemaType } :
|
|
29
|
-
undefined
|
|
30
|
-
|
|
31
|
-
undefined;
|
|
29
|
+
undefined;
|
|
30
|
+
|
|
32
31
|
|
|
33
|
-
if (
|
|
32
|
+
if ("references" in colConf && colConf.references) {
|
|
34
33
|
|
|
35
34
|
const { tableName: lookupTable, columnName: lookupCol = "id" } = colConf.references;
|
|
36
35
|
return ` ${colNameEsc} ${getColTypeDef(colConf.references, "TEXT")} REFERENCES ${lookupTable} (${lookupCol}) `;
|
|
37
36
|
|
|
38
|
-
} else if (
|
|
37
|
+
} else if ("sqlDefinition" in colConf && colConf.sqlDefinition) {
|
|
39
38
|
|
|
40
|
-
return ` ${colNameEsc} ${
|
|
39
|
+
return ` ${colNameEsc} ${colConf.sqlDefinition} `;
|
|
41
40
|
|
|
42
|
-
} else if (
|
|
41
|
+
} else if ("isText" in colConf && colConf.isText) {
|
|
43
42
|
let checks = "";
|
|
44
43
|
const colChecks: string[] = [];
|
|
45
44
|
if (colConf.lowerCased) {
|
|
@@ -94,7 +93,8 @@ export const getColumnDefinitionQuery = async ({ colConf, column, db, table }: A
|
|
|
94
93
|
return ` ${colNameEsc} ${type} ${colConf.nullable ? "" : "NOT NULL"} ${"defaultValue" in colConf ? ` DEFAULT ${asValue(colConf.defaultValue)}` : ""} CHECK(${checks})`;
|
|
95
94
|
|
|
96
95
|
} else {
|
|
97
|
-
|
|
96
|
+
return undefined;
|
|
97
|
+
// throw "Unknown column config: " + JSON.stringify(colConf);
|
|
98
98
|
}
|
|
99
99
|
}
|
|
100
100
|
|
|
@@ -141,4 +141,22 @@ export const getColConstraintsQuery = ({ column, table, types }: Omit<ColConstra
|
|
|
141
141
|
export const getColConstraints = ({ db, column, table, types }: ColConstraintsArgs ): Promise<ColConstraint[]> => {
|
|
142
142
|
|
|
143
143
|
return db.manyOrNone(getColConstraintsQuery({ column, table, types }));
|
|
144
|
+
}
|
|
145
|
+
export type ColumnMinimalInfo = {
|
|
146
|
+
table_name: string;
|
|
147
|
+
table_schema: string;
|
|
148
|
+
column_name: string;
|
|
149
|
+
column_default: string | null;
|
|
150
|
+
udt_name: string;
|
|
151
|
+
nullable: boolean;
|
|
152
|
+
};
|
|
153
|
+
export const getTableColumns = ({ db, tableName }: { db: DB; tableName: string;}): Promise<ColumnMinimalInfo[]> => {
|
|
154
|
+
return db.manyOrNone(`
|
|
155
|
+
SELECT table_name,
|
|
156
|
+
table_schema, column_name,
|
|
157
|
+
column_default, udt_name,
|
|
158
|
+
is_nullable = 'YES' as nullable
|
|
159
|
+
FROM information_schema.columns
|
|
160
|
+
WHERE table_name = $1
|
|
161
|
+
`, [tableName]);
|
|
144
162
|
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { TableConfig } from "./TableConfig";
|
|
2
|
+
type Args = {
|
|
3
|
+
tableName: string;
|
|
4
|
+
tableConf: TableConfig[string];
|
|
5
|
+
};
|
|
6
|
+
export declare const getConstraintDefinitionQueries: ({ tableConf, tableName }: Args) => string[] | undefined;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=getConstraintDefinitionQueries.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getConstraintDefinitionQueries.d.ts","sourceRoot":"","sources":["getConstraintDefinitionQueries.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,KAAK,IAAI,GAAG;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;CAE/B,CAAC;AAEF,eAAO,MAAM,8BAA8B,6BAA8B,IAAI,KAAG,MAAM,EAAE,GAAG,SA2B1F,CAAA"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getConstraintDefinitionQueries = void 0;
|
|
4
|
+
const prostgles_types_1 = require("prostgles-types");
|
|
5
|
+
const getConstraintDefinitionQueries = ({ tableConf, tableName }) => {
|
|
6
|
+
if ("constraints" in tableConf && tableConf.constraints) {
|
|
7
|
+
const { constraints } = tableConf;
|
|
8
|
+
if (!constraints) {
|
|
9
|
+
return undefined;
|
|
10
|
+
}
|
|
11
|
+
const queries = [];
|
|
12
|
+
if (Array.isArray(constraints)) {
|
|
13
|
+
return constraints.map(c => `ALTER TABLE ${(0, prostgles_types_1.asName)(tableName)} ADD ${c}`);
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
const constraintNames = (0, prostgles_types_1.getKeys)(tableConf.constraints);
|
|
17
|
+
constraintNames.map(constraintName => {
|
|
18
|
+
const _cnstr = constraints[constraintName];
|
|
19
|
+
const constraintDef = typeof _cnstr === "string" ? _cnstr : `${_cnstr.type} (${_cnstr.content})`;
|
|
20
|
+
/** Drop constraints with the same name */
|
|
21
|
+
// const existingConstraint = constraints.some(c => c.conname === constraintName);
|
|
22
|
+
// if(existingConstraint){
|
|
23
|
+
// if(canDrop) queries.push(`ALTER TABLE ${asName(tableName)} DROP CONSTRAINT ${asName(constraintName)};`);
|
|
24
|
+
// }
|
|
25
|
+
queries.push(`ALTER TABLE ${(0, prostgles_types_1.asName)(tableName)} ADD CONSTRAINT ${(0, prostgles_types_1.asName)(constraintName)} ${constraintDef} ;`);
|
|
26
|
+
});
|
|
27
|
+
return queries;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
exports.getConstraintDefinitionQueries = getConstraintDefinitionQueries;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { asName, getKeys } from "prostgles-types";
|
|
2
|
+
import { TableConfig } from "./TableConfig";
|
|
3
|
+
|
|
4
|
+
type Args = {
|
|
5
|
+
tableName: string;
|
|
6
|
+
tableConf: TableConfig[string]
|
|
7
|
+
// tableConf: BaseTableDefinition<LANG_IDS> & (TableDefinition<LANG_IDS> | LookupTableDefinition<LANG_IDS>)
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
export const getConstraintDefinitionQueries = ({ tableConf, tableName }: Args): string[] | undefined => {
|
|
11
|
+
|
|
12
|
+
if ("constraints" in tableConf && tableConf.constraints) {
|
|
13
|
+
const { constraints } = tableConf;
|
|
14
|
+
if(!constraints){
|
|
15
|
+
return undefined;
|
|
16
|
+
}
|
|
17
|
+
const queries: string[] = [];
|
|
18
|
+
if(Array.isArray(constraints)){
|
|
19
|
+
return constraints.map(c => `ALTER TABLE ${asName(tableName)} ADD ${c}`);
|
|
20
|
+
} else {
|
|
21
|
+
const constraintNames = getKeys(tableConf.constraints);
|
|
22
|
+
constraintNames.map(constraintName => {
|
|
23
|
+
const _cnstr = constraints[constraintName];
|
|
24
|
+
const constraintDef = typeof _cnstr === "string"? _cnstr : `${_cnstr.type} (${_cnstr.content})`;
|
|
25
|
+
|
|
26
|
+
/** Drop constraints with the same name */
|
|
27
|
+
// const existingConstraint = constraints.some(c => c.conname === constraintName);
|
|
28
|
+
// if(existingConstraint){
|
|
29
|
+
// if(canDrop) queries.push(`ALTER TABLE ${asName(tableName)} DROP CONSTRAINT ${asName(constraintName)};`);
|
|
30
|
+
// }
|
|
31
|
+
|
|
32
|
+
queries.push(`ALTER TABLE ${asName(tableName)} ADD CONSTRAINT ${asName(constraintName)} ${constraintDef} ;`);
|
|
33
|
+
});
|
|
34
|
+
return queries;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
package/package.json
CHANGED
package/tests/client/PID.txt
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
34106
|