prostgles-server 4.2.638 → 4.2.639
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/getCreateSchemaQueries.d.ts.map +1 -1
- package/dist/TableConfig/getCreateSchemaQueries.js +3 -2
- package/dist/TableConfig/getCreateSchemaQueries.js.map +1 -1
- package/dist/TableConfig/getTableConfigVersion.d.ts +2 -0
- package/dist/TableConfig/getTableConfigVersion.d.ts.map +1 -0
- package/dist/TableConfig/getTableConfigVersion.js +11 -0
- package/dist/TableConfig/getTableConfigVersion.js.map +1 -0
- package/dist/TableConfig/runMigrations.d.ts.map +1 -1
- package/dist/TableConfig/runMigrations.js +12 -6
- package/dist/TableConfig/runMigrations.js.map +1 -1
- package/lib/TableConfig/getCreateSchemaQueries.ts +4 -3
- package/lib/TableConfig/getTableConfigVersion.ts +6 -0
- package/lib/TableConfig/runMigrations.ts +19 -9
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCreateSchemaQueries.d.ts","sourceRoot":"","sources":["../../lib/TableConfig/getCreateSchemaQueries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,YAAY,CAAC;AAExC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,KAAK,EAAE,oBAAoB,EAAyB,MAAM,mBAAmB,CAAC;AAErF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"getCreateSchemaQueries.d.ts","sourceRoot":"","sources":["../../lib/TableConfig/getCreateSchemaQueries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,YAAY,CAAC;AAExC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,KAAK,EAAE,oBAAoB,EAAyB,MAAM,mBAAmB,CAAC;AAErF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI;KAChC,CAAC,IAAI,MAAM,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAC/B,CAAC;AACF,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACrC,iBAAiB,CAAC,oBAAoB,CAAC,EACvC,uBAAuB,GAAG,aAAa,GAAG,WAAW,GAAG,aAAa,GAAG,OAAO,CAChF,CAAC;AAEF,eAAO,MAAM,yBAAyB,GACpC,IAAI,EAAE,EACN,wCAAwC,oBAAoB,EAC5D,mBAAmB,MAAM;;;;;;;;;;0BAqFH,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;;;;;0BAUb,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;;;;;;EA9DhD,CAAC"}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.tableConfigWithMigrations = void 0;
|
|
4
4
|
const prostgles_types_1 = require("prostgles-types");
|
|
5
5
|
const fetchTableConstraints_1 = require("./fetchTableConstraints");
|
|
6
|
+
const getTableConfigVersion_1 = require("./getTableConfigVersion");
|
|
6
7
|
const tableConfigWithMigrations = async (db, { tableConfig, tableConfigMigrations }, file_table_schema) => {
|
|
7
8
|
if (!tableConfigMigrations)
|
|
8
9
|
return { config: tableConfig };
|
|
@@ -33,8 +34,8 @@ exports.tableConfigWithMigrations = tableConfigWithMigrations;
|
|
|
33
34
|
* THEN will return the migration function
|
|
34
35
|
*/
|
|
35
36
|
const getMigration = async (db, versionTableName, tableConfig, { version, onMigrate }, file_table_queries) => {
|
|
36
|
-
const
|
|
37
|
-
|
|
37
|
+
const latestVersion = (0, getTableConfigVersion_1.getTableConfigVersion)((await db.oneOrNone(`SELECT MAX(id) as v FROM ${(0, prostgles_types_1.asName)(versionTableName)}`))
|
|
38
|
+
?.v);
|
|
38
39
|
if (latestVersion === version) {
|
|
39
40
|
const isLatest = (await db.oneOrNone(`
|
|
40
41
|
SELECT 1 as v
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCreateSchemaQueries.js","sourceRoot":"","sources":["../../lib/TableConfig/getCreateSchemaQueries.ts"],"names":[],"mappings":";;;AACA,qDAAyC;AAGzC,mEAAgE;
|
|
1
|
+
{"version":3,"file":"getCreateSchemaQueries.js","sourceRoot":"","sources":["../../lib/TableConfig/getCreateSchemaQueries.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getTableConfigVersion.d.ts","sourceRoot":"","sources":["../../lib/TableConfig/getTableConfigVersion.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,GAAI,OAAO,MAAM,GAAG,IAAI,GAAG,SAAS,uBAKrE,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getTableConfigVersion = void 0;
|
|
4
|
+
const getTableConfigVersion = (value) => {
|
|
5
|
+
if (value === null || value === undefined)
|
|
6
|
+
return;
|
|
7
|
+
const version = Number(value);
|
|
8
|
+
return Number.isFinite(version) ? version : undefined;
|
|
9
|
+
};
|
|
10
|
+
exports.getTableConfigVersion = getTableConfigVersion;
|
|
11
|
+
//# sourceMappingURL=getTableConfigVersion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getTableConfigVersion.js","sourceRoot":"","sources":["../../lib/TableConfig/getTableConfigVersion.ts"],"names":[],"mappings":";;;AAAO,MAAM,qBAAqB,GAAG,CAAC,KAAgC,EAAE,EAAE;IACxE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO;IAElD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AACxD,CAAC,CAAC;AALW,QAAA,qBAAqB,yBAKhC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runMigrations.d.ts","sourceRoot":"","sources":["../../lib/TableConfig/runMigrations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"runMigrations.d.ts","sourceRoot":"","sources":["../../lib/TableConfig/runMigrations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAK9D,wBAAsB,aAAa,CACjC,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,EACtB,EACE,qBAAqB,EACrB,WAAW,GACZ,EAAE,IAAI,CAAC,oBAAoB,EAAE,uBAAuB,GAAG,aAAa,CAAC,EACtE,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;CAAE;;;eAgDjD"}
|
|
@@ -3,19 +3,25 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.runMigrations = runMigrations;
|
|
4
4
|
const PubSubManagerUtils_1 = require("../PubSubManager/PubSubManagerUtils");
|
|
5
5
|
const fetchTableConstraints_1 = require("./fetchTableConstraints");
|
|
6
|
+
const getTableConfigVersion_1 = require("./getTableConfigVersion");
|
|
6
7
|
async function runMigrations(t, { tableConfigMigrations, tableConfig, }, { asName }) {
|
|
7
8
|
if (!tableConfigMigrations)
|
|
8
9
|
return;
|
|
9
10
|
const { onMigrate, version, versionTableName = "schema_version" } = tableConfigMigrations;
|
|
10
11
|
await t.any(`
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
/* ${PubSubManagerUtils_1.EXCLUDE_QUERY_FROM_SCHEMA_WATCH_ID} */
|
|
13
|
+
CREATE TABLE IF NOT EXISTS ${asName(versionTableName)}(
|
|
14
|
+
id NUMERIC PRIMARY KEY,
|
|
15
|
+
table_config JSONB NOT NULL
|
|
16
|
+
)
|
|
17
|
+
`);
|
|
14
18
|
const migrations = { version, table: versionTableName };
|
|
15
|
-
const
|
|
16
|
-
const latestVersion = Number.isFinite(maxVersion) ? maxVersion : undefined;
|
|
19
|
+
const latestVersion = (0, getTableConfigVersion_1.getTableConfigVersion)((await t.oneOrNone(`SELECT MAX(id) as v FROM ${asName(versionTableName)}`))?.v);
|
|
17
20
|
if (latestVersion === version) {
|
|
18
|
-
const isLatest = (await t.oneOrNone(`
|
|
21
|
+
const isLatest = (await t.oneOrNone(`
|
|
22
|
+
SELECT table_config = \${tableConfig} as v
|
|
23
|
+
FROM ${asName(versionTableName)}
|
|
24
|
+
WHERE id = \${version}`, { version, tableConfig }))?.v;
|
|
19
25
|
if (isLatest) {
|
|
20
26
|
/**
|
|
21
27
|
* If the table config is the same as the latest version then we can skip all schema checks and changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runMigrations.js","sourceRoot":"","sources":["../../lib/TableConfig/runMigrations.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"runMigrations.js","sourceRoot":"","sources":["../../lib/TableConfig/runMigrations.ts"],"names":[],"mappings":";;AAMA,sCAsDC;AA1DD,4EAAyF;AACzF,mEAAgE;AAChE,mEAAgE;AAEzD,KAAK,UAAU,aAAa,CACjC,CAAsB,EACtB,EACE,qBAAqB,EACrB,WAAW,GACyD,EACtE,EAAE,MAAM,EAAwC;IAEhD,IAAI,CAAC,qBAAqB;QAAE,OAAO;IAEnC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,gBAAgB,GAAG,gBAAgB,EAAE,GAAG,qBAAqB,CAAC;IAC1F,MAAM,CAAC,CAAC,GAAG,CAAC;SACL,uDAAkC;iCACV,MAAM,CAAC,gBAAgB,CAAC;;;;GAItD,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC;IACxD,MAAM,aAAa,GAAG,IAAA,6CAAqB,EACzC,CACE,MAAM,CAAC,CAAC,SAAS,CACf,4BAA4B,MAAM,CAAC,gBAAgB,CAAC,EAAE,CACvD,CACF,EAAE,CAAC,CACL,CAAC;IAEF,IAAI,aAAa,KAAK,OAAO,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,CACf,MAAM,CAAC,CAAC,SAAS,CACf;;eAEO,MAAM,CAAC,gBAAgB,CAAC;+BACR,EACvB,EAAE,OAAO,EAAE,WAAW,EAAE,CACzB,CACF,EAAE,CAAC,CAAC;QACL,IAAI,QAAQ,EAAE,CAAC;YACb;;eAEG;YACH,OAAO;QACT,CAAC;IACH,CAAC;IACD,IAAI,aAAa,KAAK,SAAS,IAAI,aAAa,GAAG,OAAO,EAAE,CAAC;QAC3D,MAAM,SAAS,CAAC;YACd,EAAE,EAAE,CAAC;YACL,UAAU,EAAE,aAAa;YACzB,cAAc,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CACpC,IAAA,6CAAqB,EAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;SAC9D,CAAC,CAAC;IACL,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
|
@@ -4,6 +4,7 @@ import type { DB } from "../initProstgles";
|
|
|
4
4
|
import type { ProstglesInitOptions, TableConfigMigrations } from "../ProstglesTypes";
|
|
5
5
|
import { fetchTableConstraints } from "./fetchTableConstraints";
|
|
6
6
|
import type { TableConfig } from "./TableConfigTypes";
|
|
7
|
+
import { getTableConfigVersion } from "./getTableConfigVersion";
|
|
7
8
|
export type RequiredUndefined<T> = {
|
|
8
9
|
[K in keyof Required<T>]: T[K];
|
|
9
10
|
};
|
|
@@ -62,10 +63,10 @@ const getMigration = async (
|
|
|
62
63
|
{ version, onMigrate }: Pick<TableConfigMigrations, "version" | "onMigrate">,
|
|
63
64
|
file_table_queries: string,
|
|
64
65
|
) => {
|
|
65
|
-
const
|
|
66
|
-
(await db.oneOrNone<{ v: string }>(`SELECT MAX(id) as v FROM ${asName(versionTableName)}`))
|
|
66
|
+
const latestVersion = getTableConfigVersion(
|
|
67
|
+
(await db.oneOrNone<{ v: string | null }>(`SELECT MAX(id) as v FROM ${asName(versionTableName)}`))
|
|
68
|
+
?.v,
|
|
67
69
|
);
|
|
68
|
-
const latestVersion = Number.isFinite(maxVersion) ? maxVersion : undefined;
|
|
69
70
|
|
|
70
71
|
if (latestVersion === version) {
|
|
71
72
|
const isLatest = (
|
|
@@ -2,6 +2,7 @@ import type pgPromise from "pg-promise";
|
|
|
2
2
|
import type { ProstglesInitOptions } from "../ProstglesTypes";
|
|
3
3
|
import { EXCLUDE_QUERY_FROM_SCHEMA_WATCH_ID } from "../PubSubManager/PubSubManagerUtils";
|
|
4
4
|
import { fetchTableConstraints } from "./fetchTableConstraints";
|
|
5
|
+
import { getTableConfigVersion } from "./getTableConfigVersion";
|
|
5
6
|
|
|
6
7
|
export async function runMigrations(
|
|
7
8
|
t: pgPromise.ITask<{}>,
|
|
@@ -9,26 +10,35 @@ export async function runMigrations(
|
|
|
9
10
|
tableConfigMigrations,
|
|
10
11
|
tableConfig,
|
|
11
12
|
}: Pick<ProstglesInitOptions, "tableConfigMigrations" | "tableConfig">,
|
|
12
|
-
{ asName }: { asName: (name: string) => string }
|
|
13
|
+
{ asName }: { asName: (name: string) => string },
|
|
13
14
|
) {
|
|
14
15
|
if (!tableConfigMigrations) return;
|
|
15
16
|
|
|
16
17
|
const { onMigrate, version, versionTableName = "schema_version" } = tableConfigMigrations;
|
|
17
18
|
await t.any(`
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
/* ${EXCLUDE_QUERY_FROM_SCHEMA_WATCH_ID} */
|
|
20
|
+
CREATE TABLE IF NOT EXISTS ${asName(versionTableName)}(
|
|
21
|
+
id NUMERIC PRIMARY KEY,
|
|
22
|
+
table_config JSONB NOT NULL
|
|
23
|
+
)
|
|
24
|
+
`);
|
|
21
25
|
const migrations = { version, table: versionTableName };
|
|
22
|
-
const
|
|
23
|
-
(
|
|
26
|
+
const latestVersion = getTableConfigVersion(
|
|
27
|
+
(
|
|
28
|
+
await t.oneOrNone<{ v: string | null }>(
|
|
29
|
+
`SELECT MAX(id) as v FROM ${asName(versionTableName)}`,
|
|
30
|
+
)
|
|
31
|
+
)?.v,
|
|
24
32
|
);
|
|
25
|
-
const latestVersion = Number.isFinite(maxVersion) ? maxVersion : undefined;
|
|
26
33
|
|
|
27
34
|
if (latestVersion === version) {
|
|
28
35
|
const isLatest = (
|
|
29
36
|
await t.oneOrNone<{ v: string | null }>(
|
|
30
|
-
`
|
|
31
|
-
|
|
37
|
+
`
|
|
38
|
+
SELECT table_config = \${tableConfig} as v
|
|
39
|
+
FROM ${asName(versionTableName)}
|
|
40
|
+
WHERE id = \${version}`,
|
|
41
|
+
{ version, tableConfig },
|
|
32
42
|
)
|
|
33
43
|
)?.v;
|
|
34
44
|
if (isLatest) {
|