@prisma-psm/pg 1.0.5 → 1.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/.idea/vcs.xml +1 -0
  2. package/package.json +1 -1
  3. package/src/index.js +15 -6
  4. package/src/index.ts +22 -10
  5. package/src/migration/index.d.ts +2 -1
  6. package/src/migration/index.d.ts.map +1 -1
  7. package/src/migration/index.js +39 -0
  8. package/src/migration/index.js.map +1 -1
  9. package/src/migration/index.ts +43 -1
  10. package/src/parser/backup/engine.d.ts +4 -1
  11. package/src/parser/backup/engine.d.ts.map +1 -1
  12. package/src/parser/backup/engine.js +53 -33
  13. package/src/parser/backup/engine.js.map +1 -1
  14. package/src/parser/backup/engine.ts +58 -33
  15. package/src/parser/backup/index.d.ts +4 -1
  16. package/src/parser/backup/index.d.ts.map +1 -1
  17. package/src/parser/def.d.ts +5 -3
  18. package/src/parser/def.d.ts.map +1 -1
  19. package/src/parser/def.ts +9 -2
  20. package/src/parser/modelParser.d.ts +4 -1
  21. package/src/parser/modelParser.d.ts.map +1 -1
  22. package/src/parser/notice.js +1 -1
  23. package/src/parser/notice.ts +2 -2
  24. package/src/parser/parser.d.ts +6 -1
  25. package/src/parser/parser.d.ts.map +1 -1
  26. package/src/parser/parser.js +16 -16
  27. package/src/parser/parser.js.map +1 -1
  28. package/src/parser/parser.ts +31 -18
  29. package/src/parser/schama.d.ts +3 -0
  30. package/src/parser/schama.d.ts.map +1 -0
  31. package/src/parser/schama.js +16 -0
  32. package/src/parser/schama.js.map +1 -0
  33. package/src/parser/schama.ts +14 -0
  34. package/src/parser/sql.d.ts +4 -1
  35. package/src/parser/sql.d.ts.map +1 -1
  36. package/src/parser/sql.js +47 -20
  37. package/src/parser/sql.js.map +1 -1
  38. package/src/parser/sql.ts +33 -22
  39. package/src/parser/sys.d.ts.map +1 -1
  40. package/src/parser/sys.js +2 -6
  41. package/src/parser/sys.js.map +1 -1
  42. package/src/parser/sys.ts +3 -5
  43. package/src/parser/table/engine.js +2 -2
  44. package/src/parser/table/engine.ts +3 -3
  45. package/src/sql/catalog-maps.d.ts +1 -0
  46. package/src/sql/catalog-maps.d.ts.map +1 -0
  47. package/src/sql/catalog-maps.js +283 -0
  48. package/src/sql/catalog-maps.js.map +1 -0
  49. package/src/sql/catalog-maps.ts +281 -0
  50. package/src/sql/sql-builder.d.ts +1 -0
  51. package/src/sql/sql-builder.d.ts.map +1 -0
  52. package/src/sql/sql-builder.js +256 -0
  53. package/src/sql/sql-builder.js.map +1 -0
  54. package/src/sql/sql-builder.ts +254 -0
  55. package/src/utils/escape.d.ts +5 -1
  56. package/src/utils/escape.d.ts.map +1 -1
  57. package/src/utils/escape.js +328 -4
  58. package/src/utils/escape.js.map +1 -1
  59. package/src/utils/escape.ts +331 -4
  60. package/src/utils/script-util.d.ts +26 -0
  61. package/src/utils/script-util.d.ts.map +1 -0
  62. package/src/utils/script-util.js +95 -0
  63. package/src/utils/script-util.js.map +1 -0
  64. package/src/utils/script-util.ts +105 -0
package/.idea/vcs.xml CHANGED
@@ -2,5 +2,6 @@
2
2
  <project version="4">
3
3
  <component name="VcsDirectoryMappings">
4
4
  <mapping directory="" vcs="Git" />
5
+ <mapping directory="$PROJECT_DIR$/../psm" vcs="Git" />
5
6
  </component>
6
7
  </project>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prisma-psm/pg",
3
- "version": "1.0.5",
3
+ "version": "1.0.7",
4
4
  "description": "Prisma Safe Migration Postgres Driver",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
package/src/index.js CHANGED
@@ -1,21 +1,30 @@
1
1
  "use strict";
2
- const sql_1 = require("./parser/sql");
3
2
  const parser_1 = require("./parser/parser");
4
3
  const migration_1 = require("./migration");
4
+ const sql_1 = require("./parser/sql");
5
5
  function prepare(model) {
6
6
  if (!model.schema)
7
7
  model.schema = "public";
8
8
  }
9
9
  const driver = {
10
+ migrated: (opts) => {
11
+ return (0, migration_1.migrated)(opts);
12
+ },
10
13
  migrator: opts => ({
11
14
  migrate: () => (0, migration_1.migrate)({ sql: opts.migrate, url: opts.url, label: "NEXT" }),
12
15
  test: () => (0, migration_1.migrate)({ sql: opts.check, url: opts.url, label: "TEST" }),
16
+ core: () => (0, migration_1.migrate)({ sql: opts.core, url: opts.url, label: "CORE" }),
13
17
  }),
14
- generator: opts => ({
15
- migrate: () => (0, sql_1.sql)((0, parser_1.parser)(Object.assign(Object.assign({}, opts), { mode: "migrate" }))),
16
- check: () => (0, sql_1.sql)((0, parser_1.parser)(Object.assign(Object.assign({}, opts), { mode: "check" }))),
17
- }),
18
- prepare
18
+ generator: (opts) => {
19
+ let response = (0, parser_1.parser)(opts);
20
+ const generator = {
21
+ migrate: () => (0, sql_1.sql)({ mode: "migrate" }, response),
22
+ check: () => (0, sql_1.sql)({ mode: "check" }, response),
23
+ core: () => (0, sql_1.sql)({ mode: "core" }, response)
24
+ };
25
+ return generator;
26
+ },
27
+ prepare,
19
28
  };
20
29
  module.exports = driver;
21
30
  //# sourceMappingURL=index.js.map
package/src/index.ts CHANGED
@@ -1,23 +1,35 @@
1
- import {sql} from "./parser/sql";
2
- import {PSMDriver, ModelOptions} from "@prisma-psm/core";
1
+ import {PSMDriver, ModelOptions, PSMGenerator} from "@prisma-psm/core";
3
2
  import {parser} from "./parser/parser";
4
- import {migrate} from "./migration";
5
-
3
+ import {migrate,migrated} from "./migration";
4
+ import {sql} from "./parser/sql";
6
5
 
7
6
 
8
7
 
9
8
  function prepare( model:ModelOptions ){
10
9
  if( !model.schema ) model.schema = "public";
11
10
  }
11
+
12
+
12
13
  const driver :PSMDriver = {
14
+ migrated:( opts )=>{
15
+ return migrated( opts );
16
+ },
13
17
  migrator: opts => ({
14
18
  migrate: () => migrate({ sql: opts.migrate, url: opts.url, label: "NEXT" }),
15
19
  test: () => migrate({ sql: opts.check, url: opts.url, label: "TEST" }),
20
+ core: () => migrate({ sql: opts.core, url: opts.url, label: "CORE" }),
16
21
  }),
17
- generator: opts => ({
18
- migrate: () => sql(parser({ ...opts, mode: "migrate"})),
19
- check: () => sql(parser({ ...opts, mode: "check"})),
20
- }),
21
- prepare
22
- }
22
+
23
+ generator:(opts) => {
24
+ let response = parser(opts);
25
+
26
+ const generator: PSMGenerator = {
27
+ migrate: () => sql( { mode: "migrate" }, response),
28
+ check: () => sql( { mode: "check" }, response),
29
+ core: () => sql( { mode: "core" }, response)
30
+ }
31
+ return generator;
32
+ },
33
+ prepare,
34
+ } as PSMDriver
23
35
  export = driver
@@ -1,3 +1,4 @@
1
- import { MigrationOptions, PSMMigrationResult } from "@prisma-psm/core";
1
+ import { MigrationOptions, PSMMigrated, PSMMigratedOptions, PSMMigrationResult } from "@prisma-psm/core";
2
2
  export declare function migrate(opts: MigrationOptions): Promise<PSMMigrationResult>;
3
+ export declare function migrated(opts: PSMMigratedOptions): Promise<PSMMigrated>;
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAE,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAItE,wBAAgB,OAAO,CAAC,IAAI,EAAC,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAsC1E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAE,WAAW,EAAE,kBAAkB,EAAE,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAKvG,wBAAgB,OAAO,CAAC,IAAI,EAAC,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAsC1E;AACD,wBAAgB,QAAQ,CAAC,IAAI,EAAC,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,CAwCtE"}
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.migrate = migrate;
4
+ exports.migrated = migrated;
4
5
  const pg_1 = require("pg");
6
+ const escape_1 = require("../utils/escape");
5
7
  function migrate(opts) {
6
8
  return new Promise((resolve, reject) => {
7
9
  const response = {
@@ -37,4 +39,41 @@ function migrate(opts) {
37
39
  });
38
40
  });
39
41
  }
42
+ function migrated(opts) {
43
+ return new Promise((resolve, reject) => {
44
+ const response = {
45
+ messages: [],
46
+ };
47
+ const client = new pg_1.Client(opts.url);
48
+ client.connect(err => {
49
+ var _a;
50
+ if (err) {
51
+ (_a = response.messages) === null || _a === void 0 ? void 0 : _a.push(`Connection failed: ${err.message}`);
52
+ response.error = err;
53
+ }
54
+ const sys = (0, escape_1.oid)(opts.sys || "sys");
55
+ const query = new pg_1.Query(`
56
+ select * from ${sys}.migration;
57
+ `);
58
+ query.on("error", err => {
59
+ var _a;
60
+ response.error = err;
61
+ (_a = response.messages) === null || _a === void 0 ? void 0 : _a.push(`Load migrated failed: ${err.message}`);
62
+ console.error(`Load migrated failed`, err);
63
+ client.end(err1 => { });
64
+ resolve(response);
65
+ });
66
+ query.on("end", result => {
67
+ response.success = true;
68
+ response.migrated = result.rows;
69
+ client.end(err1 => { });
70
+ resolve(response);
71
+ });
72
+ client.on("notice", notice => {
73
+ console.log(`PSM NOTICE: ${notice.message}`);
74
+ });
75
+ client.query(query);
76
+ });
77
+ });
78
+ }
40
79
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;AAIA,0BAsCC;AAzCD,2BAAkC;AAGlC,SAAgB,OAAO,CAAC,IAAqB;IACzC,OAAO,IAAI,OAAO,CAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACpC,MAAM,QAAQ,GAAsB;YAChC,QAAQ,EAAE,EAAE;SACf,CAAA;QACD,MAAM,MAAM,GAAG,IAAI,WAAM,CAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,CAAC,OAAO,CAAE,GAAG,CAAC,EAAE;;YAClB,IAAI,GAAG,EAAG,CAAC;gBACP,MAAA,QAAQ,CAAC,QAAQ,0CAAE,IAAI,CAAE,sBAAsB,GAAG,CAAC,OAAO,EAAE,CAAE,CAAC;gBAC/D,QAAQ,CAAC,KAAK,GAAG,GAAG,CAAC;YACzB,CAAC;YAED,MAAM,KAAK,GAAG,IAAI,UAAK,CAAE,IAAI,CAAC,GAAG,CAAE,CAAC;YACpC,KAAK,CAAC,EAAE,CAAE,OAAO,EAAE,GAAG,CAAC,EAAE;;gBACrB,QAAQ,CAAC,KAAK,GAAG,GAAG,CAAC;gBACrB,MAAA,QAAQ,CAAC,QAAQ,0CAAE,IAAI,CAAE,GAAG,IAAI,CAAC,KAAK,sBAAsB,GAAG,CAAC,OAAO,EAAE,CAAE,CAAC;gBAC5E,OAAO,CAAC,KAAK,CAAE,GAAG,IAAI,CAAC,KAAK,mBAAmB,EAAE,GAAG,CAAC,CAAA;gBACrD,MAAM,CAAC,GAAG,CAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBACzB,OAAO,CAAE,QAAQ,CAAE,CAAC;YACxB,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,EAAE,CAAE,KAAK,EAAE,MAAM,CAAC,EAAE;gBACtB,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;gBACxB,MAAM,CAAC,GAAG,CAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBACzB,OAAO,CAAE,QAAQ,CAAE,CAAC;YACxB,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,EAAE,CAAE,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;YAEjC,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,EAAE,CAAE,QAAQ,EAAE,MAAM,CAAC,EAAE;gBAC1B,OAAO,CAAC,GAAG,CAAE,eAAe,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;YAClD,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,KAAK,CAAE,KAAK,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAA;AACN,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
- import {MigrationOptions, PSMMigrationResult} from "@prisma-psm/core";
1
+ import {MigrationOptions, PSMMigrated, PSMMigratedOptions, PSMMigrationResult} from "@prisma-psm/core";
2
2
  import { Client, Query } from 'pg'
3
+ import {oid} from "../utils/escape";
3
4
 
4
5
 
5
6
  export function migrate(opts:MigrationOptions ):Promise<PSMMigrationResult>{
@@ -37,6 +38,47 @@ export function migrate(opts:MigrationOptions ):Promise<PSMMigrationResult>{
37
38
  console.log( `PSM NOTICE: ${notice.message}`);
38
39
  });
39
40
 
41
+ client.query( query);
42
+ });
43
+ })
44
+ }
45
+ export function migrated(opts:PSMMigratedOptions ):Promise<PSMMigrated>{
46
+ return new Promise( (resolve, reject) => {
47
+ const response:PSMMigrated = {
48
+ messages: [],
49
+ }
50
+ const client = new Client( opts.url);
51
+ client.connect( err => {
52
+ if( err ) {
53
+ response.messages?.push( `Connection failed: ${err.message}` );
54
+ response.error = err;
55
+ }
56
+
57
+ const sys = oid( opts.sys || "sys" )
58
+
59
+ const query = new Query( `
60
+ select * from ${sys}.migration;
61
+ `);
62
+
63
+ query.on( "error", err => {
64
+ response.error = err;
65
+ response.messages?.push( `Load migrated failed: ${err.message}` );
66
+ console.error( `Load migrated failed`, err)
67
+ client.end( err1 => { });
68
+ resolve( response );
69
+ });
70
+
71
+ query.on( "end", result => {
72
+ response.success = true;
73
+ response.migrated = result.rows;
74
+ client.end( err1 => { });
75
+ resolve( response );
76
+ });
77
+
78
+ client.on( "notice", notice => {
79
+ console.log( `PSM NOTICE: ${notice.message}`);
80
+ });
81
+
40
82
  client.query( query);
41
83
  });
42
84
  })
@@ -6,7 +6,10 @@ export interface RestoreOptions {
6
6
  model: ModelOptions;
7
7
  parser: PostgresParserOptions;
8
8
  }
9
- export declare function restoreBackupSQL(opts: RestoreOptions): string[];
9
+ export declare function restoreBackupSQL(opts: RestoreOptions): {
10
+ data: string[];
11
+ registry: string[];
12
+ };
10
13
  export interface RestoreSerialOptions extends RestoreOptions {
11
14
  from: string;
12
15
  to: string;
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAG3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,QAAQ,CAAC;AAK/C,wBAAgB,2BAA2B,CAAE,IAAI,EAAE,qBAAqB,YAoCvE;AAGD,MAAM,WAAW,cAAc;IAC3B,MAAM,EAAC,MAAM,CAAA;IACb,KAAK,EAAC,YAAY,CAAC;IACnB,MAAM,EAAC,qBAAqB,CAAA;CAC/B;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAC,cAAc,GAAI,MAAM,EAAE,CAyH/D;AAED,MAAM,WAAW,oBAAqB,SAAQ,cAAc;IACxD,IAAI,EAAC,MAAM,CAAA;IACX,EAAE,EAAC,MAAM,CAAA;IACT,GAAG,CAAC,EAAC,MAAM,CAAA;CACd;AACD,wBAAgB,gBAAgB,CAAE,IAAI,EAAC,oBAAoB,YAkB1D"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAG3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,QAAQ,CAAC;AAK/C,wBAAgB,2BAA2B,CAAE,IAAI,EAAE,qBAAqB,YAoCvE;AAGD,MAAM,WAAW,cAAc;IAC3B,MAAM,EAAC,MAAM,CAAA;IACb,KAAK,EAAC,YAAY,CAAC;IACnB,MAAM,EAAC,qBAAqB,CAAA;CAC/B;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAC,cAAc,GAAI;IACpD,IAAI,EAAC,MAAM,EAAE,CAAA;IACb,QAAQ,EAAC,MAAM,EAAE,CAAA;CACpB,CAiJA;AAED,MAAM,WAAW,oBAAqB,SAAQ,cAAc;IACxD,IAAI,EAAC,MAAM,CAAA;IACX,EAAE,EAAC,MAAM,CAAA;IACT,GAAG,CAAC,EAAC,MAAM,CAAA;CACd;AACD,wBAAgB,gBAAgB,CAAE,IAAI,EAAC,oBAAoB,YAgB1D"}
@@ -5,9 +5,9 @@ exports.restoreBackupSQL = restoreBackupSQL;
5
5
  exports.restoreSerialSQL = restoreSerialSQL;
6
6
  const escape_1 = require("../../utils/escape");
7
7
  const tabs_1 = require("../../utils/tabs");
8
+ const notice_1 = require("../notice");
8
9
  const sys_1 = require("../sys");
9
10
  const sha_1 = require("../../utils/sha");
10
- const notice_1 = require("../notice");
11
11
  function createFunctionRestoreSerial(opts) {
12
12
  const sys = (0, escape_1.oid)(opts.sys);
13
13
  const tab = " ";
@@ -46,7 +46,7 @@ function createFunctionRestoreSerial(opts) {
46
46
  ], tab);
47
47
  }
48
48
  function restoreBackupSQL(opts) {
49
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4;
49
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7;
50
50
  const schema = (0, escape_1.oid)(opts.model.schema);
51
51
  const source = (0, escape_1.oid)(opts.source);
52
52
  const shadow = (0, escape_1.oid)(opts.parser.shadow);
@@ -61,12 +61,16 @@ function restoreBackupSQL(opts) {
61
61
  const columns = opts.model.fields.filter(filter)
62
62
  .map(value => ` ${(0, escape_1.oid)(value.name)}`)
63
63
  .join(", ");
64
+ const DEFAULT_WHEN = `true`;
64
65
  const DEFAULT_QUERY = `select * from ${schema}.${source}`;
66
+ const DEFAULT_SOURCE_CHECKER = `select 1 from pg_catalog.pg_tables t where t.tablename = ${(0, escape_1.lit)(opts.model.name)} and t.schemaname = ${(0, escape_1.lit)(opts.model.schema)}`;
65
67
  const DEFAULT_RESOLVER = opts.model.fields.filter(filter)
66
68
  .map(value => {
67
69
  return ` ${(0, escape_1.oid)(value.dbName || value.name)}`;
68
70
  })
69
71
  .join(", ");
72
+ let source_exists = DEFAULT_SOURCE_CHECKER;
73
+ let when = DEFAULT_WHEN;
70
74
  const revision_resolver = opts.model.fields.filter(filter)
71
75
  .map(field => {
72
76
  var _a, _b;
@@ -78,14 +82,18 @@ function restoreBackupSQL(opts) {
78
82
  .join(", ");
79
83
  let revision_query = DEFAULT_QUERY;
80
84
  const expression = (_e = (_d = (_c = opts.model.psm) === null || _c === void 0 ? void 0 : _c.backup) === null || _d === void 0 ? void 0 : _d.rev) === null || _e === void 0 ? void 0 : _e.expression;
81
- if (((_h = (_g = (_f = opts.model.psm) === null || _f === void 0 ? void 0 : _f.backup) === null || _g === void 0 ? void 0 : _g.rev) === null || _h === void 0 ? void 0 : _h.from) === "query"
85
+ const exists = (_h = (_g = (_f = opts.model.psm) === null || _f === void 0 ? void 0 : _f.backup) === null || _g === void 0 ? void 0 : _g.rev) === null || _h === void 0 ? void 0 : _h.exists;
86
+ if (!!(exists === null || exists === void 0 ? void 0 : exists.length)) {
87
+ source_exists = exists;
88
+ }
89
+ if (((_l = (_k = (_j = opts.model.psm) === null || _j === void 0 ? void 0 : _j.backup) === null || _k === void 0 ? void 0 : _k.rev) === null || _l === void 0 ? void 0 : _l.from) === "query"
82
90
  && !!expression)
83
91
  revision_query = expression;
84
- else if (((_l = (_k = (_j = opts.model.psm) === null || _j === void 0 ? void 0 : _j.backup) === null || _k === void 0 ? void 0 : _k.rev) === null || _l === void 0 ? void 0 : _l.from) === "query:linked"
92
+ else if (((_p = (_o = (_m = opts.model.psm) === null || _m === void 0 ? void 0 : _m.backup) === null || _o === void 0 ? void 0 : _o.rev) === null || _p === void 0 ? void 0 : _p.from) === "query:linked"
85
93
  && !!expression
86
- && !!((_o = (_m = opts.model.psm) === null || _m === void 0 ? void 0 : _m.query) === null || _o === void 0 ? void 0 : _o[expression]))
87
- revision_query = (_q = (_p = opts.model.psm) === null || _p === void 0 ? void 0 : _p.query) === null || _q === void 0 ? void 0 : _q[expression];
88
- else if (((_t = (_s = (_r = opts.model.psm) === null || _r === void 0 ? void 0 : _r.backup) === null || _s === void 0 ? void 0 : _s.rev) === null || _t === void 0 ? void 0 : _t.from) === "model" && !!expression) {
94
+ && !!((_r = (_q = opts.model.psm) === null || _q === void 0 ? void 0 : _q.query) === null || _r === void 0 ? void 0 : _r[expression]))
95
+ revision_query = (_t = (_s = opts.model.psm) === null || _s === void 0 ? void 0 : _s.query) === null || _t === void 0 ? void 0 : _t[expression];
96
+ else if (((_w = (_v = (_u = opts.model.psm) === null || _u === void 0 ? void 0 : _u.backup) === null || _v === void 0 ? void 0 : _v.rev) === null || _w === void 0 ? void 0 : _w.from) === "model" && !!expression) {
89
97
  let model = opts.parser.models.find(value => value.model === expression);
90
98
  if (!!model)
91
99
  revision_query = `select * from ${(0, escape_1.oid)(model.schema || "public")}.${(0, escape_1.oid)(model.dbName || model.name)}`;
@@ -93,11 +101,11 @@ function restoreBackupSQL(opts) {
93
101
  const sys = (0, escape_1.oid)(opts.parser.sys);
94
102
  let revision = "null";
95
103
  const relation = `${schema}.${table}`;
96
- if ((_w = (_v = (_u = opts.model.psm) === null || _u === void 0 ? void 0 : _u.backup) === null || _v === void 0 ? void 0 : _v.rev) === null || _w === void 0 ? void 0 : _w.version)
97
- revision = (0, escape_1.val)((_y = (_x = opts.model.psm) === null || _x === void 0 ? void 0 : _x.backup) === null || _y === void 0 ? void 0 : _y.rev.version);
104
+ if ((_z = (_y = (_x = opts.model.psm) === null || _x === void 0 ? void 0 : _x.backup) === null || _y === void 0 ? void 0 : _y.rev) === null || _z === void 0 ? void 0 : _z.version)
105
+ revision = (0, escape_1.lit)((_1 = (_0 = opts.model.psm) === null || _0 === void 0 ? void 0 : _0.backup) === null || _1 === void 0 ? void 0 : _1.rev.version);
98
106
  let always_query = DEFAULT_QUERY;
99
107
  let always_resolver = DEFAULT_RESOLVER;
100
- if (((_1 = (_0 = (_z = opts.model.psm) === null || _z === void 0 ? void 0 : _z.backup) === null || _0 === void 0 ? void 0 : _0.rev) === null || _1 === void 0 ? void 0 : _1.apply) === "ALWAYS" && !!revision_query && !!revision_resolver) {
108
+ if (((_4 = (_3 = (_2 = opts.model.psm) === null || _2 === void 0 ? void 0 : _2.backup) === null || _3 === void 0 ? void 0 : _3.rev) === null || _4 === void 0 ? void 0 : _4.apply) === "ALWAYS" && !!revision_query && !!revision_resolver) {
101
109
  always_query = revision_query;
102
110
  always_resolver = revision_resolver;
103
111
  revision = `always-${opts.parser.migration}`;
@@ -106,8 +114,18 @@ function restoreBackupSQL(opts) {
106
114
  do $$
107
115
  declare
108
116
  _revision character varying := ${revision}::character varying;
109
- _relation character varying := ${(0, escape_1.val)(relation)}::character varying;
117
+ _relation character varying := ${(0, escape_1.lit)(relation)}::character varying;
118
+ ___whenX1025475 boolean;
110
119
  begin
120
+ if not exists( ${source_exists} ) then
121
+ return;
122
+ end if;
123
+
124
+ ___whenX1025475 := (${when});
125
+ if not coalesce( ___whenX1025475, true ) then
126
+ return;
127
+ end if;
128
+
111
129
  if _revision is not null and not exists(
112
130
  select 1
113
131
  from ${sys}.revision r
@@ -131,13 +149,6 @@ function restoreBackupSQL(opts) {
131
149
  else
132
150
  raise exception 'cannot restore revision';
133
151
  end if;
134
-
135
- ${(0, sys_1.createRevision)(opts.parser, {
136
- revision: (_4 = (_3 = (_2 = opts.model.psm) === null || _2 === void 0 ? void 0 : _2.backup) === null || _3 === void 0 ? void 0 : _3.rev) === null || _4 === void 0 ? void 0 : _4.version,
137
- relation: relation,
138
- hash: (0, sha_1.migrationHash)(opts.parser.migration, `restore:data-${relation}`),
139
- operation: `restore:data-${relation}`
140
- }).join("\n")}
141
152
  end;
142
153
  $$;
143
154
  `.split("\n")
@@ -148,24 +159,33 @@ function restoreBackupSQL(opts) {
148
159
  return value;
149
160
  })
150
161
  .join("\n");
151
- return [
152
- (0, notice_1.notice)(`CREATE BACKUP FOR MODEL ${opts.model.model}`),
153
- next,
154
- (0, notice_1.notice)(`CREATE BACKUP FOR MODEL ${opts.model.model} OK`),
155
- ];
162
+ return {
163
+ data: [
164
+ (0, notice_1.notice)(`RESTORE BACKUP FOR MODEL ${opts.model.model}`),
165
+ next,
166
+ (0, notice_1.notice)(`RESTORE BACKUP FOR MODEL ${opts.model.model} OK`),
167
+ ],
168
+ registry: [
169
+ (0, notice_1.notice)(`REGISTRY RESTORE OF BACKUP FOR MODEL ${opts.model.model}`),
170
+ (0, sys_1.createRevision)(opts.parser, {
171
+ revision: (_7 = (_6 = (_5 = opts.model.psm) === null || _5 === void 0 ? void 0 : _5.backup) === null || _6 === void 0 ? void 0 : _6.rev) === null || _7 === void 0 ? void 0 : _7.version,
172
+ relation: relation,
173
+ hash: (0, sha_1.migrationHash)(opts.parser.migration, `restore:data-${relation}`),
174
+ operation: `restore:data-${relation}`
175
+ }).join("\n"),
176
+ (0, notice_1.notice)(`REGISTRY RESTORE OF BACKUP FOR MODEL ${opts.model.model} OK`),
177
+ ],
178
+ };
156
179
  }
157
180
  function restoreSerialSQL(opts) {
158
- let seq = "null";
159
- if (!!opts.seq)
160
- seq = (0, escape_1.val)(opts.seq);
161
181
  const args = [
162
- ` schema := ${(0, escape_1.val)(opts.model.schema)}::character varying`,
163
- ` source := ${(0, escape_1.val)(opts.source)}::character varying`,
164
- ` shadow := ${(0, escape_1.val)(opts.parser.shadow)}::character varying`,
165
- ` temp := ${(0, escape_1.val)(opts.model.temp)}::character varying`,
166
- ` "from" := ${(0, escape_1.val)(opts.from)}::character varying`,
167
- ` "to" := ${(0, escape_1.val)(opts.to)}::character varying`,
168
- ` "seq" := ${seq}::character varying`,
182
+ ` schema := ${(0, escape_1.lit)(opts.model.schema, escape_1.VARCHAR)}`,
183
+ ` source := ${(0, escape_1.lit)(opts.source, escape_1.VARCHAR)}`,
184
+ ` shadow := ${(0, escape_1.lit)(opts.parser.shadow, escape_1.VARCHAR)}`,
185
+ ` temp := ${(0, escape_1.lit)(opts.model.temp, escape_1.VARCHAR)}`,
186
+ ` "from" := ${(0, escape_1.lit)(opts.from, escape_1.VARCHAR)}`,
187
+ ` "to" := ${(0, escape_1.lit)(opts.to, escape_1.VARCHAR)}`,
188
+ ` "seq" := ${(0, escape_1.lit)(opts.seq, escape_1.VARCHAR)}`,
169
189
  ];
170
190
  return [
171
191
  (0, notice_1.notice)(`RESTORE SEQUENCE OF FIELD ${opts.to} FROM MODEL ${opts.model.model}`),
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["engine.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import {FieldOption, ModelOptions} from "@prisma-psm/core";
2
- import {oid, val} from "../../utils/escape";
2
+ import {oid, lit, VARCHAR} from "../../utils/escape";
3
3
  import { noTab } from "../../utils/tabs";
4
4
  import { PostgresParserOptions } from "../def";
5
+ import {notice} from "../notice";
5
6
  import {createRevision} from "../sys";
6
7
  import {migrationHash} from "../../utils/sha";
7
- import {notice} from "../notice";
8
8
 
9
9
  export function createFunctionRestoreSerial( opts: PostgresParserOptions) {
10
10
  const sys = oid( opts.sys);
@@ -51,15 +51,15 @@ export interface RestoreOptions{
51
51
  parser:PostgresParserOptions
52
52
  }
53
53
 
54
- export function restoreBackupSQL(opts:RestoreOptions ): string[] {
54
+ export function restoreBackupSQL(opts:RestoreOptions ): {
55
+ data:string[]
56
+ registry:string[]
57
+ }{
55
58
  const schema = oid(opts.model.schema);
56
59
  const source = oid(opts.source);
57
60
  const shadow = oid(opts.parser.shadow);
58
- const table = oid(opts.model.name);
59
- const temp = oid(opts.model.temp);
60
-
61
-
62
-
61
+ const table = oid(opts.model.name);
62
+ const temp = oid(opts.model.temp);
63
63
 
64
64
  if( opts.model.psm?.backup?.skip ) return null as any;
65
65
 
@@ -69,12 +69,15 @@ export function restoreBackupSQL(opts:RestoreOptions ): string[] {
69
69
  ;
70
70
  }
71
71
 
72
+
72
73
  const columns = opts.model.fields.filter( filter )
73
74
  .map( value => ` ${oid(value.name)}` )
74
75
  .join(", ")
75
76
  ;
76
77
 
78
+ const DEFAULT_WHEN = `true`;
77
79
  const DEFAULT_QUERY = `select * from ${schema}.${source}`;
80
+ const DEFAULT_SOURCE_CHECKER = `select 1 from pg_catalog.pg_tables t where t.tablename = ${lit(opts.model.name)} and t.schemaname = ${lit(opts.model.schema)}`;
78
81
  const DEFAULT_RESOLVER = opts.model.fields.filter( filter )
79
82
  .map( value => {
80
83
  return ` ${oid(value.dbName||value.name)}`;
@@ -82,6 +85,9 @@ export function restoreBackupSQL(opts:RestoreOptions ): string[] {
82
85
  .join(", ")
83
86
  ;
84
87
 
88
+ let source_exists = DEFAULT_SOURCE_CHECKER;
89
+ let when = DEFAULT_WHEN;
90
+
85
91
  const revision_resolver = opts.model.fields.filter( filter )
86
92
  .map( field => {
87
93
 
@@ -94,9 +100,15 @@ export function restoreBackupSQL(opts:RestoreOptions ): string[] {
94
100
 
95
101
  let revision_query = DEFAULT_QUERY;
96
102
  const expression = opts.model.psm?.backup?.rev?.expression;
103
+ const exists = opts.model.psm?.backup?.rev?.exists;
104
+
105
+ if( !!exists?.length ){
106
+ source_exists = exists;
107
+ }
108
+
97
109
  if( opts.model.psm?.backup?.rev?.from === "query"
98
110
  && !!expression
99
- ) revision_query = expression
111
+ ) revision_query = expression;
100
112
 
101
113
  else if( opts.model.psm?.backup?.rev?.from === "query:linked"
102
114
  && !!expression
@@ -111,7 +123,7 @@ export function restoreBackupSQL(opts:RestoreOptions ): string[] {
111
123
  const sys = oid( opts.parser.sys );
112
124
  let revision= "null";
113
125
  const relation = `${schema}.${table}`;
114
- if( opts.model.psm?.backup?.rev?.version ) revision = val( opts.model.psm?.backup?.rev.version );
126
+ if( opts.model.psm?.backup?.rev?.version ) revision = lit( opts.model.psm?.backup?.rev.version );
115
127
 
116
128
  let always_query = DEFAULT_QUERY;
117
129
  let always_resolver = DEFAULT_RESOLVER;
@@ -121,12 +133,22 @@ export function restoreBackupSQL(opts:RestoreOptions ): string[] {
121
133
  revision = `always-${opts.parser.migration}`;
122
134
  }
123
135
 
124
- const next = `
136
+ const next =`
125
137
  do $$
126
138
  declare
127
139
  _revision character varying := ${revision}::character varying;
128
- _relation character varying := ${val(relation)}::character varying;
140
+ _relation character varying := ${lit(relation)}::character varying;
141
+ ___whenX1025475 boolean;
129
142
  begin
143
+ if not exists( ${source_exists} ) then
144
+ return;
145
+ end if;
146
+
147
+ ___whenX1025475 := (${when});
148
+ if not coalesce( ___whenX1025475, true ) then
149
+ return;
150
+ end if;
151
+
130
152
  if _revision is not null and not exists(
131
153
  select 1
132
154
  from ${sys}.revision r
@@ -150,13 +172,6 @@ export function restoreBackupSQL(opts:RestoreOptions ): string[] {
150
172
  else
151
173
  raise exception 'cannot restore revision';
152
174
  end if;
153
-
154
- ${ createRevision( opts.parser, {
155
- revision: opts.model.psm?.backup?.rev?.version,
156
- relation: relation,
157
- hash: migrationHash( opts.parser.migration, `restore:data-${relation}`),
158
- operation: `restore:data-${relation}`
159
- }).join("\n")}
160
175
  end;
161
176
  $$;
162
177
  `.split("\n")
@@ -167,11 +182,23 @@ export function restoreBackupSQL(opts:RestoreOptions ): string[] {
167
182
  })
168
183
  .join("\n");
169
184
 
170
- return [
171
- notice( `CREATE BACKUP FOR MODEL ${opts.model.model}` ),
172
- next,
173
- notice( `CREATE BACKUP FOR MODEL ${opts.model.model} OK` ),
174
- ]
185
+ return {
186
+ data: [
187
+ notice( `RESTORE BACKUP FOR MODEL ${opts.model.model}` ),
188
+ next,
189
+ notice( `RESTORE BACKUP FOR MODEL ${opts.model.model} OK` ),
190
+ ],
191
+ registry: [
192
+ notice( `REGISTRY RESTORE OF BACKUP FOR MODEL ${opts.model.model}` ),
193
+ createRevision( opts.parser, {
194
+ revision: opts.model.psm?.backup?.rev?.version,
195
+ relation: relation,
196
+ hash: migrationHash( opts.parser.migration, `restore:data-${relation}`),
197
+ operation: `restore:data-${relation}`
198
+ }).join("\n"),
199
+ notice( `REGISTRY RESTORE OF BACKUP FOR MODEL ${opts.model.model} OK` ),
200
+ ],
201
+ }
175
202
  }
176
203
 
177
204
  export interface RestoreSerialOptions extends RestoreOptions {
@@ -180,16 +207,14 @@ export interface RestoreSerialOptions extends RestoreOptions {
180
207
  seq?:string
181
208
  }
182
209
  export function restoreSerialSQL( opts:RestoreSerialOptions) {
183
- let seq = "null";
184
- if( !!opts.seq ) seq = val( opts.seq );
185
210
  const args = [
186
- ` schema := ${val(opts.model.schema)}::character varying`,
187
- ` source := ${val(opts.source)}::character varying`,
188
- ` shadow := ${val(opts.parser.shadow)}::character varying`,
189
- ` temp := ${val(opts.model.temp)}::character varying`,
190
- ` "from" := ${val(opts.from)}::character varying`,
191
- ` "to" := ${val(opts.to)}::character varying`,
192
- ` "seq" := ${seq}::character varying`,
211
+ ` schema := ${lit(opts.model.schema, VARCHAR)}`,
212
+ ` source := ${lit(opts.source, VARCHAR)}`,
213
+ ` shadow := ${lit(opts.parser.shadow, VARCHAR)}`,
214
+ ` temp := ${lit(opts.model.temp, VARCHAR)}`,
215
+ ` "from" := ${lit(opts.from, VARCHAR)}`,
216
+ ` "to" := ${lit(opts.to, VARCHAR)}`,
217
+ ` "seq" := ${lit( opts.seq, VARCHAR)}`,
193
218
  ];
194
219
  return [
195
220
  notice( `RESTORE SEQUENCE OF FIELD ${opts.to} FROM MODEL ${opts.model.model}`),
@@ -1,7 +1,10 @@
1
1
  import { ModelOptions } from "@prisma-psm/core";
2
2
  import { PostgresParserOptions } from "../def";
3
3
  export declare function backupParser(model: ModelOptions, parser: PostgresParserOptions): {
4
- restore_backup: () => string[];
4
+ restore_backup: () => {
5
+ data: string[];
6
+ registry: string[];
7
+ };
5
8
  restore_serial: () => string[];
6
9
  };
7
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAC,qBAAqB,EAAC,MAAM,QAAQ,CAAC;AAI7C,wBAAgB,YAAY,CAAE,KAAK,EAAC,YAAY,EAAE,MAAM,EAAC,qBAAqB;;;EAwB7E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAC,qBAAqB,EAAC,MAAM,QAAQ,CAAC;AAI7C,wBAAgB,YAAY,CAAE,KAAK,EAAC,YAAY,EAAE,MAAM,EAAC,qBAAqB;;;;;;EAwB7E"}