@prisma-psm/pg 1.0.0

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 (114) hide show
  1. package/.idea/modules.xml +8 -0
  2. package/.idea/php.xml +9 -0
  3. package/.idea/psm-pg.iml +8 -0
  4. package/.idea/vcs.xml +6 -0
  5. package/.idea/workspace.xml +73 -0
  6. package/LICENSE +201 -0
  7. package/README.md +2 -0
  8. package/package.json +21 -0
  9. package/src/index.d.ts +4 -0
  10. package/src/index.d.ts.map +1 -0
  11. package/src/index.js +21 -0
  12. package/src/index.js.map +1 -0
  13. package/src/index.ts +23 -0
  14. package/src/migration/migrate.d.ts +3 -0
  15. package/src/migration/migrate.d.ts.map +1 -0
  16. package/src/migration/migrate.js +8 -0
  17. package/src/migration/migrate.js.map +1 -0
  18. package/src/migration/migrate.ts +7 -0
  19. package/src/migration/test.d.ts +3 -0
  20. package/src/migration/test.d.ts.map +1 -0
  21. package/src/migration/test.js +40 -0
  22. package/src/migration/test.js.map +1 -0
  23. package/src/migration/test.ts +43 -0
  24. package/src/parser/backup/engine.d.ts +16 -0
  25. package/src/parser/backup/engine.d.ts.map +1 -0
  26. package/src/parser/backup/engine.js +176 -0
  27. package/src/parser/backup/engine.js.map +1 -0
  28. package/src/parser/backup/engine.ts +201 -0
  29. package/src/parser/backup/index.d.ts +7 -0
  30. package/src/parser/backup/index.d.ts.map +1 -0
  31. package/src/parser/backup/index.js +29 -0
  32. package/src/parser/backup/index.js.map +1 -0
  33. package/src/parser/backup/index.ts +30 -0
  34. package/src/parser/constraint.d.ts +22 -0
  35. package/src/parser/constraint.d.ts.map +1 -0
  36. package/src/parser/constraint.js +160 -0
  37. package/src/parser/constraint.js.map +1 -0
  38. package/src/parser/constraint.ts +161 -0
  39. package/src/parser/def.d.ts +37 -0
  40. package/src/parser/def.d.ts.map +1 -0
  41. package/src/parser/def.js +4 -0
  42. package/src/parser/def.js.map +1 -0
  43. package/src/parser/def.ts +22 -0
  44. package/src/parser/dependencies.d.ts +3 -0
  45. package/src/parser/dependencies.d.ts.map +1 -0
  46. package/src/parser/dependencies.js +39 -0
  47. package/src/parser/dependencies.js.map +1 -0
  48. package/src/parser/dependencies.ts +43 -0
  49. package/src/parser/indexes.d.ts +13 -0
  50. package/src/parser/indexes.d.ts.map +1 -0
  51. package/src/parser/indexes.js +54 -0
  52. package/src/parser/indexes.js.map +1 -0
  53. package/src/parser/indexes.ts +57 -0
  54. package/src/parser/modelParser.d.ts +19 -0
  55. package/src/parser/modelParser.d.ts.map +1 -0
  56. package/src/parser/modelParser.js +24 -0
  57. package/src/parser/modelParser.js.map +1 -0
  58. package/src/parser/modelParser.ts +30 -0
  59. package/src/parser/notice.d.ts +2 -0
  60. package/src/parser/notice.d.ts.map +1 -0
  61. package/src/parser/notice.js +8 -0
  62. package/src/parser/notice.js.map +1 -0
  63. package/src/parser/notice.ts +5 -0
  64. package/src/parser/parser.d.ts +15 -0
  65. package/src/parser/parser.d.ts.map +1 -0
  66. package/src/parser/parser.js +72 -0
  67. package/src/parser/parser.js.map +1 -0
  68. package/src/parser/parser.ts +87 -0
  69. package/src/parser/shadow.d.ts +4 -0
  70. package/src/parser/shadow.d.ts.map +1 -0
  71. package/src/parser/shadow.js +21 -0
  72. package/src/parser/shadow.js.map +1 -0
  73. package/src/parser/shadow.ts +20 -0
  74. package/src/parser/sql.d.ts +3 -0
  75. package/src/parser/sql.d.ts.map +1 -0
  76. package/src/parser/sql.js +67 -0
  77. package/src/parser/sql.js.map +1 -0
  78. package/src/parser/sql.ts +74 -0
  79. package/src/parser/sys.d.ts +11 -0
  80. package/src/parser/sys.d.ts.map +1 -0
  81. package/src/parser/sys.js +54 -0
  82. package/src/parser/sys.js.map +1 -0
  83. package/src/parser/sys.ts +56 -0
  84. package/src/parser/table/engine.d.ts +7 -0
  85. package/src/parser/table/engine.d.ts.map +1 -0
  86. package/src/parser/table/engine.js +103 -0
  87. package/src/parser/table/engine.js.map +1 -0
  88. package/src/parser/table/engine.ts +106 -0
  89. package/src/parser/table/field.d.ts +8 -0
  90. package/src/parser/table/field.d.ts.map +1 -0
  91. package/src/parser/table/field.js +25 -0
  92. package/src/parser/table/field.js.map +1 -0
  93. package/src/parser/table/field.ts +22 -0
  94. package/src/parser/table.d.ts +8 -0
  95. package/src/parser/table.d.ts.map +1 -0
  96. package/src/parser/table.js +31 -0
  97. package/src/parser/table.js.map +1 -0
  98. package/src/parser/table.ts +30 -0
  99. package/src/utils/escape.d.ts +3 -0
  100. package/src/utils/escape.d.ts.map +1 -0
  101. package/src/utils/escape.js +59 -0
  102. package/src/utils/escape.js.map +1 -0
  103. package/src/utils/escape.ts +36 -0
  104. package/src/utils/sha.d.ts +2 -0
  105. package/src/utils/sha.d.ts.map +1 -0
  106. package/src/utils/sha.js +33 -0
  107. package/src/utils/sha.js.map +1 -0
  108. package/src/utils/sha.ts +6 -0
  109. package/src/utils/tabs.d.ts +2 -0
  110. package/src/utils/tabs.d.ts.map +1 -0
  111. package/src/utils/tabs.js +16 -0
  112. package/src/utils/tabs.js.map +1 -0
  113. package/src/utils/tabs.ts +14 -0
  114. package/tsconfig.json +81 -0
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ //filename: src/libs/migrate/index.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.parser = parser;
5
+ const shadow_1 = require("./shadow");
6
+ const sys_1 = require("./sys");
7
+ const dependencies_1 = require("./dependencies");
8
+ const modelParser_1 = require("./modelParser");
9
+ const engine_1 = require("./backup/engine");
10
+ function parser(opts) {
11
+ const schemas = new Set();
12
+ let response = {
13
+ options: opts,
14
+ parsed: {},
15
+ models: [],
16
+ core: [
17
+ ...(0, sys_1.prepareCore)(opts),
18
+ ...(0, sys_1.createMigration)(opts),
19
+ ...(0, engine_1.createFunctionRestoreSerial)(opts)
20
+ ],
21
+ shadow: {
22
+ create: [...(0, shadow_1.create_shadow)(opts)],
23
+ drop: [...(0, shadow_1.drop_shadow)(opts)],
24
+ }
25
+ };
26
+ opts.models.forEach((model, index) => {
27
+ var _a, _b, _c;
28
+ model.temp = `temp_${index}_${model.name}`;
29
+ schemas.add(model.schema);
30
+ if ((_a = model.psm) === null || _a === void 0 ? void 0 : _a.view)
31
+ return;
32
+ model.indexes = opts.indexes.filter(value => value.model === model.name);
33
+ const modelDDL = (0, modelParser_1.modelParser)(model, opts);
34
+ const parsed = {
35
+ model: model,
36
+ backup: { create: [], restore: [], restore_serial: [], clean: [] },
37
+ table: { create: [], drop: [], allocate: [] },
38
+ primary: { create: [], drop: [] },
39
+ foreign: { create: [], drop: [] },
40
+ unique: { create: [], drop: [] },
41
+ indexes: { create: [], drop: [] },
42
+ dependencies: [],
43
+ dependents: []
44
+ };
45
+ let backup = true;
46
+ if ((_c = (_b = model.psm) === null || _b === void 0 ? void 0 : _b.backup) === null || _c === void 0 ? void 0 : _c.skip)
47
+ backup = false;
48
+ if (backup) {
49
+ parsed.backup.restore.push(...modelDDL.restore_backup());
50
+ parsed.backup.restore_serial.push(...modelDDL.restore_serial());
51
+ }
52
+ parsed.table.create.push(...modelDDL.create_table());
53
+ parsed.primary.create.push(...modelDDL.create_primary_keys());
54
+ parsed.foreign.create.push(...modelDDL.create_foreign_key());
55
+ parsed.unique.create.push(...modelDDL.create_unique_key());
56
+ parsed.indexes.create.push(...modelDDL.create_index_key());
57
+ if (opts.mode === "migrate") {
58
+ parsed.table.drop.push(...modelDDL.drop_table());
59
+ parsed.table.allocate.push(...modelDDL.allocate_table());
60
+ parsed.primary.drop.push(...modelDDL.drop_primary_keys());
61
+ parsed.foreign.drop.push(...modelDDL.drop_foreign_key());
62
+ parsed.unique.drop.push(...modelDDL.drop_unique_key());
63
+ parsed.indexes.drop.push(...modelDDL.drop_index_key());
64
+ }
65
+ parsed.dependencies.push(...modelDDL.depends());
66
+ response.parsed[model.name] = parsed;
67
+ response.models.push(model.name);
68
+ });
69
+ (0, dependencies_1.reverseDependencies)(Object.values(response.parsed));
70
+ return response;
71
+ }
72
+ //# sourceMappingURL=parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ //filename: src/libs/migrate/index.ts
2
+
3
+ import {create_shadow, drop_shadow} from "./shadow";
4
+ import {createMigration, prepareCore} from "./sys";
5
+ import {reverseDependencies} from "./dependencies";
6
+ import {modelParser} from "./modelParser";
7
+ import {createFunctionRestoreSerial} from "./backup/engine";
8
+ import {ParseModelResult, PostgresParserOptions} from "./def";
9
+
10
+
11
+ export interface ParserResult {
12
+ options:PostgresParserOptions
13
+ models: string[],
14
+ core: string[]
15
+ shadow: { create:string[], drop:string[] },
16
+ parsed: {
17
+ [p:string]:ParseModelResult
18
+ }
19
+ }
20
+
21
+ export function parser( opts:PostgresParserOptions){
22
+ const schemas = new Set();
23
+ let response:ParserResult = {
24
+ options: opts,
25
+ parsed:{},
26
+ models:[],
27
+ core:[
28
+ ...prepareCore(opts),
29
+ ...createMigration(opts),
30
+ ...createFunctionRestoreSerial(opts)
31
+ ],
32
+ shadow:{
33
+ create: [...create_shadow( opts )],
34
+ drop: [...drop_shadow( opts )],
35
+ }
36
+ }
37
+
38
+ opts.models.forEach( (model, index) => {
39
+ model.temp = `temp_${index}_${model.name}`;
40
+
41
+ schemas.add( model.schema )
42
+
43
+ if( model.psm?.view ) return;
44
+ model.indexes = opts.indexes.filter( value => value.model === model.name );
45
+ const modelDDL = modelParser( model, opts );
46
+ const parsed:ParseModelResult = {
47
+ model: model,
48
+ backup:{ create:[], restore:[], restore_serial:[], clean:[] },
49
+ table:{ create:[], drop:[], allocate:[]},
50
+ primary:{ create:[], drop:[] },
51
+ foreign:{ create:[], drop:[] },
52
+ unique:{ create:[], drop:[] },
53
+ indexes:{ create:[], drop:[] },
54
+ dependencies:[],
55
+ dependents:[]
56
+ }
57
+
58
+ let backup = true;
59
+ if( model.psm?.backup?.skip ) backup = false;
60
+
61
+ if( backup ){
62
+ parsed.backup.restore.push( ...modelDDL.restore_backup() );
63
+ parsed.backup.restore_serial.push( ...modelDDL.restore_serial());
64
+ }
65
+
66
+ parsed.table.create.push( ...modelDDL.create_table());
67
+ parsed.primary.create.push( ...modelDDL.create_primary_keys())
68
+ parsed.foreign.create.push( ...modelDDL.create_foreign_key() );
69
+ parsed.unique.create.push( ...modelDDL.create_unique_key());
70
+ parsed.indexes.create.push( ...modelDDL.create_index_key());
71
+
72
+ if( opts.mode === "migrate" ){
73
+ parsed.table.drop.push( ...modelDDL.drop_table());
74
+ parsed.table.allocate.push( ...modelDDL.allocate_table());
75
+ parsed.primary.drop.push(...modelDDL.drop_primary_keys());
76
+ parsed.foreign.drop.push( ...modelDDL.drop_foreign_key());
77
+ parsed.unique.drop.push( ...modelDDL.drop_unique_key());
78
+ parsed.indexes.drop.push( ...modelDDL.drop_index_key());
79
+ }
80
+
81
+ parsed.dependencies.push( ...modelDDL.depends());
82
+ response.parsed[model.name] = parsed;
83
+ response.models.push( model.name)
84
+ });
85
+ reverseDependencies( Object.values( response.parsed ))
86
+ return response;
87
+ }
@@ -0,0 +1,4 @@
1
+ import { PostgresParserOptions } from "./def";
2
+ export declare function create_shadow(opts: PostgresParserOptions): string[];
3
+ export declare function drop_shadow(opts: PostgresParserOptions): string[];
4
+ //# sourceMappingURL=shadow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shadow.d.ts","sourceRoot":"","sources":["shadow.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,qBAAqB,EAAC,MAAM,OAAO,CAAC;AAI5C,wBAAgB,aAAa,CAAE,IAAI,EAAE,qBAAqB,GAAI,MAAM,EAAE,CAMrE;AAED,wBAAgB,WAAW,CAAE,IAAI,EAAE,qBAAqB,GAAI,MAAM,EAAE,CAMnE"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.create_shadow = create_shadow;
4
+ exports.drop_shadow = drop_shadow;
5
+ const escape_1 = require("../utils/escape");
6
+ const notice_1 = require("./notice");
7
+ function create_shadow(opts) {
8
+ return [
9
+ (0, notice_1.notice)(`CREATE SHADOW SCHEMA ${opts.shadow}`),
10
+ `create schema ${(0, escape_1.oid)(opts.shadow)};`,
11
+ (0, notice_1.notice)(`CREATE SHADOW SCHEMA ${opts.shadow} OK!`),
12
+ ];
13
+ }
14
+ function drop_shadow(opts) {
15
+ return [
16
+ (0, notice_1.notice)(`DROP SHADOW SCHEMA ${opts.shadow}`),
17
+ `drop schema ${(0, escape_1.oid)(opts.shadow)} cascade;`,
18
+ (0, notice_1.notice)(`DROP SHADOW SCHEMA ${opts.shadow} OK!`),
19
+ ];
20
+ }
21
+ //# sourceMappingURL=shadow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shadow.js","sourceRoot":"","sources":["shadow.ts"],"names":[],"mappings":";;AAKA,sCAMC;AAED,kCAMC;AAjBD,4CAAoC;AACpC,qCAAgC;AAEhC,SAAgB,aAAa,CAAE,IAA2B;IACtD,OAAO;QACH,IAAA,eAAM,EAAC,wBAAyB,IAAI,CAAC,MAAM,EAAE,CAAC;QAC9C,iBAAiB,IAAA,YAAG,EAAE,IAAI,CAAC,MAAM,CAAE,GAAG;QACtC,IAAA,eAAM,EAAC,wBAAyB,IAAI,CAAC,MAAM,MAAM,CAAC;KACrD,CAAC;AACN,CAAC;AAED,SAAgB,WAAW,CAAE,IAA2B;IACpD,OAAO;QACH,IAAA,eAAM,EAAC,sBAAuB,IAAI,CAAC,MAAM,EAAE,CAAC;QAC5C,eAAe,IAAA,YAAG,EAAE,IAAI,CAAC,MAAM,CAAE,WAAW;QAC5C,IAAA,eAAM,EAAC,sBAAuB,IAAI,CAAC,MAAM,MAAM,CAAC;KACnD,CAAC;AACN,CAAC"}
@@ -0,0 +1,20 @@
1
+ //filename: src/libs/migrate/shadow.ts
2
+ import {PostgresParserOptions} from "./def";
3
+ import {oid} from "../utils/escape";
4
+ import {notice} from "./notice";
5
+
6
+ export function create_shadow( opts: PostgresParserOptions ): string[] {
7
+ return [
8
+ notice(`CREATE SHADOW SCHEMA ${ opts.shadow}`),
9
+ `create schema ${oid( opts.shadow )};`,
10
+ notice(`CREATE SHADOW SCHEMA ${ opts.shadow} OK!`),
11
+ ];
12
+ }
13
+
14
+ export function drop_shadow( opts: PostgresParserOptions ): string[] {
15
+ return [
16
+ notice(`DROP SHADOW SCHEMA ${ opts.shadow}`),
17
+ `drop schema ${oid( opts.shadow )} cascade;`,
18
+ notice(`DROP SHADOW SCHEMA ${ opts.shadow} OK!`),
19
+ ];
20
+ }
@@ -0,0 +1,3 @@
1
+ import { ParserResult } from "./parser";
2
+ export declare function sql(response: ParserResult): string;
3
+ //# sourceMappingURL=sql.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql.d.ts","sourceRoot":"","sources":["sql.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,UAAU,CAAC;AAEtC,wBAAgB,GAAG,CAAC,QAAQ,EAAE,YAAY,UAuEzC"}
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sql = sql;
4
+ function sql(response) {
5
+ let parsed = Object.values(response.parsed);
6
+ const commands = [];
7
+ commands.push(`/*
8
+ @PSM - Prisma SAFE MIGRATE
9
+ @author zootakuxy
10
+ @automation cli psm
11
+ @mode ${response.options.mode}
12
+ @date ${new Date().toISOString()}
13
+ */`);
14
+ commands.push(...response.core);
15
+ commands.push(...response.shadow.create);
16
+ //Create Table
17
+ parsed.filter(value => !!value.table.create.length).forEach(value => {
18
+ commands.push(...value.table.create);
19
+ });
20
+ //Restore
21
+ parsed.filter(value => !!value.backup.restore.length).forEach(value => {
22
+ commands.push(...value.backup.restore);
23
+ });
24
+ parsed.filter(value => !!value.backup.restore_serial.length).forEach(value => {
25
+ commands.push(...value.backup.restore_serial);
26
+ });
27
+ //Create indexes
28
+ parsed.filter(value => !!value.indexes.create.length).forEach(value => {
29
+ commands.push(...value.indexes.create);
30
+ });
31
+ //Create constraints
32
+ parsed.filter(value => !!value.primary.create.length).forEach(value => {
33
+ commands.push(...value.primary.create);
34
+ });
35
+ parsed.filter(value => !!value.unique.create.length).forEach(value => {
36
+ commands.push(...value.unique.create);
37
+ });
38
+ parsed.filter(value => !!value.foreign.create.length).forEach(value => {
39
+ commands.push(...value.foreign.create);
40
+ });
41
+ //Drops
42
+ parsed.filter(value => !!value.foreign.drop.length).forEach(value => {
43
+ commands.push(...value.foreign.drop);
44
+ });
45
+ parsed.filter(value => !!value.unique.drop.length).forEach(value => {
46
+ commands.push(...value.unique.drop);
47
+ });
48
+ parsed.filter(value => !!value.primary.drop.length).forEach(value => {
49
+ commands.push(...value.primary.drop);
50
+ });
51
+ parsed.filter(value => !!value.indexes.drop.length).forEach(value => {
52
+ commands.push(...value.indexes.drop);
53
+ });
54
+ parsed.filter(value => !!value.table.drop.length).forEach(value => {
55
+ commands.push(...value.table.drop);
56
+ });
57
+ //Clean backup
58
+ parsed.filter(value => !!value.table.allocate.length).forEach(value => {
59
+ commands.push(...value.table.allocate);
60
+ });
61
+ parsed.filter(value => !!value.backup.clean.length).forEach(value => {
62
+ commands.push(...value.backup.clean);
63
+ });
64
+ commands.push(...response.shadow.drop);
65
+ return commands.join("\n");
66
+ }
67
+ //# sourceMappingURL=sql.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql.js","sourceRoot":"","sources":["sql.ts"],"names":[],"mappings":";;AAEA,kBAuEC;AAvED,SAAgB,GAAG,CAAC,QAAsB;IACtC,IAAI,MAAM,GAAI,MAAM,CAAC,MAAM,CAAE,QAAQ,CAAC,MAAM,CAAE,CAAC;IAC/C,MAAM,QAAQ,GAAY,EAAE,CAAC;IAE7B,QAAQ,CAAC,IAAI,CAAE;;;;cAIL,QAAQ,CAAC,OAAO,CAAC,IAAI;cACpB,IAAI,IAAI,EAAE,CAAC,WAAW,EAAG;OACjC,CAAC,CAAC;IAEL,QAAQ,CAAC,IAAI,CAAE,GAAG,QAAQ,CAAC,IAAI,CAAE,CAAC;IAClC,QAAQ,CAAC,IAAI,CAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAE,CAAC;IAE3C,cAAc;IACd,MAAM,CAAC,MAAM,CAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAE,CAAC,OAAO,CAAE,KAAK,CAAC,EAAE;QACnE,QAAQ,CAAC,IAAI,CAAE,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAE,CAAC;IAC3C,CAAC,CAAC,CAAA;IAEF,SAAS;IACT,MAAM,CAAC,MAAM,CAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAE,CAAC,OAAO,CAAE,KAAK,CAAC,EAAE;QACrE,QAAQ,CAAC,IAAI,CAAE,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAE,CAAC;IAC7C,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,MAAM,CAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAE,CAAC,OAAO,CAAE,KAAK,CAAC,EAAE;QAC5E,QAAQ,CAAC,IAAI,CAAE,GAAG,KAAK,CAAC,MAAM,CAAC,cAAc,CAAE,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,gBAAgB;IAChB,MAAM,CAAC,MAAM,CAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAE,CAAC,OAAO,CAAE,KAAK,CAAC,EAAE;QACrE,QAAQ,CAAC,IAAI,CAAE,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAE,CAAC;IAC7C,CAAC,CAAC,CAAA;IAEF,oBAAoB;IACpB,MAAM,CAAC,MAAM,CAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAE,CAAC,OAAO,CAAE,KAAK,CAAC,EAAE;QACrE,QAAQ,CAAC,IAAI,CAAE,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAE,CAAC;IAC7C,CAAC,CAAC,CAAA;IACF,MAAM,CAAC,MAAM,CAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAE,CAAC,OAAO,CAAE,KAAK,CAAC,EAAE;QACpE,QAAQ,CAAC,IAAI,CAAE,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAE,CAAC;IAC5C,CAAC,CAAC,CAAA;IACF,MAAM,CAAC,MAAM,CAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAE,CAAC,OAAO,CAAE,KAAK,CAAC,EAAE;QACrE,QAAQ,CAAC,IAAI,CAAE,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAE,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,OAAO;IACP,MAAM,CAAC,MAAM,CAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAE,CAAC,OAAO,CAAE,KAAK,CAAC,EAAE;QACnE,QAAQ,CAAC,IAAI,CAAE,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAE,CAAC;IAC3C,CAAC,CAAC,CAAA;IACF,MAAM,CAAC,MAAM,CAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAE,CAAC,OAAO,CAAE,KAAK,CAAC,EAAE;QAClE,QAAQ,CAAC,IAAI,CAAE,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAE,CAAC;IAC1C,CAAC,CAAC,CAAA;IACF,MAAM,CAAC,MAAM,CAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAE,CAAC,OAAO,CAAE,KAAK,CAAC,EAAE;QACnE,QAAQ,CAAC,IAAI,CAAE,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAE,CAAC;IAC3C,CAAC,CAAC,CAAA;IACF,MAAM,CAAC,MAAM,CAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAE,CAAC,OAAO,CAAE,KAAK,CAAC,EAAE;QACnE,QAAQ,CAAC,IAAI,CAAE,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAE,CAAC;IAC3C,CAAC,CAAC,CAAA;IACF,MAAM,CAAC,MAAM,CAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAE,CAAC,OAAO,CAAE,KAAK,CAAC,EAAE;QACjE,QAAQ,CAAC,IAAI,CAAE,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAE,CAAC;IACzC,CAAC,CAAC,CAAA;IAEF,cAAc;IACd,MAAM,CAAC,MAAM,CAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAE,CAAC,OAAO,CAAE,KAAK,CAAC,EAAE;QACrE,QAAQ,CAAC,IAAI,CAAE,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAE,CAAC;IAC7C,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,MAAM,CAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAE,CAAC,OAAO,CAAE,KAAK,CAAC,EAAE;QACnE,QAAQ,CAAC,IAAI,CAAE,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAE,CAAC;IAC3C,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,IAAI,CAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAE,CAAC;IAEzC,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,74 @@
1
+ import {ParserResult} from "./parser";
2
+
3
+ export function sql(response: ParserResult ) {
4
+ let parsed = Object.values( response.parsed );
5
+ const commands:string[] = [];
6
+
7
+ commands.push( `/*
8
+ @PSM - Prisma SAFE MIGRATE
9
+ @author zootakuxy
10
+ @automation cli psm
11
+ @mode ${response.options.mode}
12
+ @date ${ new Date().toISOString() }
13
+ */`);
14
+
15
+ commands.push( ...response.core );
16
+ commands.push( ...response.shadow.create );
17
+
18
+ //Create Table
19
+ parsed.filter( value => !!value.table.create.length ).forEach( value => {
20
+ commands.push( ...value.table.create );
21
+ })
22
+
23
+ //Restore
24
+ parsed.filter( value => !!value.backup.restore.length ).forEach( value => {
25
+ commands.push( ...value.backup.restore );
26
+ });
27
+ parsed.filter( value => !!value.backup.restore_serial.length ).forEach( value => {
28
+ commands.push( ...value.backup.restore_serial );
29
+ });
30
+
31
+ //Create indexes
32
+ parsed.filter( value => !!value.indexes.create.length ).forEach( value => {
33
+ commands.push( ...value.indexes.create );
34
+ })
35
+
36
+ //Create constraints
37
+ parsed.filter( value => !!value.primary.create.length ).forEach( value => {
38
+ commands.push( ...value.primary.create );
39
+ })
40
+ parsed.filter( value => !!value.unique.create.length ).forEach( value => {
41
+ commands.push( ...value.unique.create );
42
+ })
43
+ parsed.filter( value => !!value.foreign.create.length ).forEach( value => {
44
+ commands.push( ...value.foreign.create );
45
+ });
46
+
47
+ //Drops
48
+ parsed.filter( value => !!value.foreign.drop.length ).forEach( value => {
49
+ commands.push( ...value.foreign.drop );
50
+ })
51
+ parsed.filter( value => !!value.unique.drop.length ).forEach( value => {
52
+ commands.push( ...value.unique.drop );
53
+ })
54
+ parsed.filter( value => !!value.primary.drop.length ).forEach( value => {
55
+ commands.push( ...value.primary.drop );
56
+ })
57
+ parsed.filter( value => !!value.indexes.drop.length ).forEach( value => {
58
+ commands.push( ...value.indexes.drop );
59
+ })
60
+ parsed.filter( value => !!value.table.drop.length ).forEach( value => {
61
+ commands.push( ...value.table.drop );
62
+ })
63
+
64
+ //Clean backup
65
+ parsed.filter( value => !!value.table.allocate.length ).forEach( value => {
66
+ commands.push( ...value.table.allocate );
67
+ });
68
+ parsed.filter( value => !!value.backup.clean.length ).forEach( value => {
69
+ commands.push( ...value.backup.clean );
70
+ });
71
+ commands.push( ...response.shadow.drop );
72
+
73
+ return commands.join("\n");
74
+ }
@@ -0,0 +1,11 @@
1
+ import { PostgresParserOptions } from "./def";
2
+ export declare function prepareCore(opts: PostgresParserOptions): string[];
3
+ export declare function createMigration(opts: PostgresParserOptions): string[];
4
+ export interface OperationOptions {
5
+ hash: string;
6
+ operation?: string;
7
+ relation?: string;
8
+ revision?: string;
9
+ }
10
+ export declare function createRevision(opts: PostgresParserOptions, operation: OperationOptions): string[];
11
+ //# sourceMappingURL=sys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sys.d.ts","sourceRoot":"","sources":["sys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,qBAAqB,EAAC,MAAM,OAAO,CAAC;AAK5C,wBAAgB,WAAW,CAAE,IAAI,EAAC,qBAAqB,YAkBtD;AACD,wBAAgB,eAAe,CAAE,IAAI,EAAC,qBAAqB,YAQ1D;AAED,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAC,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;CACpB;AACD,wBAAgB,cAAc,CAAC,IAAI,EAAC,qBAAqB,EAAE,SAAS,EAAC,gBAAgB,YAepF"}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.prepareCore = prepareCore;
4
+ exports.createMigration = createMigration;
5
+ exports.createRevision = createRevision;
6
+ const escape_1 = require("../utils/escape");
7
+ const tabs_1 = require("../utils/tabs");
8
+ function prepareCore(opts) {
9
+ const sys = (0, escape_1.oid)(opts.sys);
10
+ const tab = " ";
11
+ return (0, tabs_1.noTab)([
12
+ `create schema if not exists ${sys};`,
13
+ `create table if not exists ${sys}.migration(
14
+ sid character varying not null primary key,
15
+ date timestamptz not null default clock_timestamp()
16
+ );`,
17
+ `create table if not exists ${sys}.revision(
18
+ hash character varying not null primary key,
19
+ migration_sid character varying not null references ${sys}.migration,
20
+ date timestamptz not null default clock_timestamp(),
21
+ operation character varying not null,
22
+ relation character varying not null,
23
+ revision character varying
24
+ );`,
25
+ ], tab);
26
+ }
27
+ function createMigration(opts) {
28
+ if (opts.mode === "check")
29
+ return [];
30
+ const sys = (0, escape_1.oid)(opts.sys);
31
+ const migration = (0, escape_1.val)(opts.migration);
32
+ const tab = " ";
33
+ return (0, tabs_1.noTab)([
34
+ `insert into ${sys}.migration ( sid ) values ( ${migration} );`,
35
+ ], tab);
36
+ }
37
+ function createRevision(opts, operation) {
38
+ if (opts.mode === "check")
39
+ return [];
40
+ const sys = (0, escape_1.oid)(opts.sys);
41
+ const tab = " ";
42
+ operation = Object.assign(Object.assign({}, operation), { migration_sid: opts.migration });
43
+ const keys = Object.keys(operation);
44
+ const columns = keys.map(value => (0, escape_1.oid)(value)).join(", ");
45
+ const values = keys.map(value => {
46
+ if (!operation[value])
47
+ return `null`;
48
+ return (0, escape_1.val)(operation[value]);
49
+ }).join(", ");
50
+ return (0, tabs_1.noTab)([
51
+ `insert into ${sys}.revision ( ${columns} ) values ( ${values} );`,
52
+ ], tab);
53
+ }
54
+ //# sourceMappingURL=sys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sys.js","sourceRoot":"","sources":["sys.ts"],"names":[],"mappings":";;AAKA,kCAkBC;AACD,0CAQC;AAQD,wCAeC;AAtDD,4CAAyC;AACzC,wCAAoC;AAGpC,SAAgB,WAAW,CAAE,IAA0B;IACnD,MAAM,GAAG,GAAG,IAAA,YAAG,EAAE,IAAI,CAAC,GAAG,CAAE,CAAC;IAC5B,MAAM,GAAG,GAAG,WAAW,CAAC;IACxB,OAAO,IAAA,YAAK,EAAC;QACT,+BAA+B,GAAG,GAAG;QACrC,8BAA8B,GAAG;;;YAG7B;QACJ,8BAA8B,GAAG;;kEAEyB,GAAG;;;;;YAKzD;KACP,EAAE,GAAG,CAAC,CAAA;AACX,CAAC;AACD,SAAgB,eAAe,CAAE,IAA0B;IACvD,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;QAAG,OAAO,EAAE,CAAC;IACtC,MAAM,GAAG,GAAG,IAAA,YAAG,EAAE,IAAI,CAAC,GAAG,CAAE,CAAC;IAC5B,MAAM,SAAS,GAAG,IAAA,YAAG,EAAE,IAAI,CAAC,SAAS,CAAE,CAAC;IACxC,MAAM,GAAG,GAAG,WAAW,CAAC;IACxB,OAAO,IAAA,YAAK,EAAE;QACV,eAAe,GAAG,+BAA+B,SAAS,KAAK;KAClE,EAAE,GAAG,CAAC,CAAA;AACX,CAAC;AAQD,SAAgB,cAAc,CAAC,IAA0B,EAAE,SAA0B;IACjF,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;QAAG,OAAO,EAAE,CAAC;IACtC,MAAM,GAAG,GAAG,IAAA,YAAG,EAAE,IAAI,CAAC,GAAG,CAAE,CAAC;IAC5B,MAAM,GAAG,GAAG,WAAW,CAAC;IACxB,SAAS,GAAG,gCAAK,SAAS,KAAE,aAAa,EAAE,IAAI,CAAC,SAAS,GAAS,CAAC;IACnE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAE,SAAS,CAAE,CAAC;IACtC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAE,KAAK,CAAC,EAAE,CAAC,IAAA,YAAG,EAAE,KAAK,CAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAE,KAAK,CAAC,EAAE;QAC7B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YAAG,OAAO,MAAM,CAAA;QACrC,OAAO,IAAA,YAAG,EAAE,SAAS,CAAC,KAAK,CAAC,CAAE,CAAA;IAClC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO,IAAA,YAAK,EAAC;QACT,eAAe,GAAG,eAAgB,OAAO,eAAe,MAAM,KAAK;KACtE,EAAE,GAAG,CAAC,CAAA;AACX,CAAC"}
@@ -0,0 +1,56 @@
1
+ import {PostgresParserOptions} from "./def";
2
+ import {oid, val} from "../utils/escape";
3
+ import {noTab} from "../utils/tabs";
4
+
5
+
6
+ export function prepareCore( opts:PostgresParserOptions ){
7
+ const sys = oid( opts.sys );
8
+ const tab = " ";
9
+ return noTab([
10
+ `create schema if not exists ${sys};`,
11
+ `create table if not exists ${sys}.migration(
12
+ sid character varying not null primary key,
13
+ date timestamptz not null default clock_timestamp()
14
+ );`,
15
+ `create table if not exists ${sys}.revision(
16
+ hash character varying not null primary key,
17
+ migration_sid character varying not null references ${sys}.migration,
18
+ date timestamptz not null default clock_timestamp(),
19
+ operation character varying not null,
20
+ relation character varying not null,
21
+ revision character varying
22
+ );`,
23
+ ], tab)
24
+ }
25
+ export function createMigration( opts:PostgresParserOptions ){
26
+ if( opts.mode === "check" ) return [];
27
+ const sys = oid( opts.sys );
28
+ const migration = val( opts.migration );
29
+ const tab = " ";
30
+ return noTab( [
31
+ `insert into ${sys}.migration ( sid ) values ( ${migration} );`,
32
+ ], tab)
33
+ }
34
+
35
+ export interface OperationOptions {
36
+ hash:string,
37
+ operation?: string
38
+ relation?: string
39
+ revision?: string
40
+ }
41
+ export function createRevision(opts:PostgresParserOptions, operation:OperationOptions ){
42
+ if( opts.mode === "check" ) return [];
43
+ const sys = oid( opts.sys );
44
+ const tab = " ";
45
+ operation = { ...operation, migration_sid: opts.migration } as any;
46
+ const keys = Object.keys( operation );
47
+ const columns = keys.map( value => oid( value )).join(", ");
48
+ const values = keys.map( value => {
49
+ if( !operation[value] ) return `null`
50
+ return val( operation[value] )
51
+ }).join(", ");
52
+
53
+ return noTab([
54
+ `insert into ${sys}.revision ( ${ columns} ) values ( ${values} );`,
55
+ ], tab)
56
+ }
@@ -0,0 +1,7 @@
1
+ import { FieldOption } from "@prisma-psm/core";
2
+ export declare function parseType(opts: FieldOption): {
3
+ type: string;
4
+ serial: boolean;
5
+ };
6
+ export declare function parseDefault(opts: FieldOption, typed: string): string;
7
+ //# sourceMappingURL=engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AA6C7C,wBAAgB,SAAS,CAAG,IAAI,EAAC,WAAW;;;EA4C3C;AAGD,wBAAgB,YAAY,CAAG,IAAI,EAAC,WAAW,EAAE,KAAK,EAAC,MAAM,UAY5D"}
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseType = parseType;
4
+ exports.parseDefault = parseDefault;
5
+ const escape_1 = require("../../utils/escape");
6
+ const PRISMA_DEFAULTS = {
7
+ now: (opts) => {
8
+ return `now()`;
9
+ },
10
+ uuid: (opts) => {
11
+ return `gen_random_uuid()`;
12
+ },
13
+ autoincrement: (opts) => {
14
+ return ``;
15
+ },
16
+ dbgenerated: (opts) => {
17
+ return ` ${opts.args}`;
18
+ }
19
+ };
20
+ const PRISMA_TYPE_MAP = {
21
+ String: "varchar",
22
+ DateTime: "timestamptz",
23
+ Json: "json",
24
+ Float: "double precision",
25
+ SmallInt: "int2",
26
+ Int: "int4",
27
+ BigInt: "int8",
28
+ Boolean: "boolean",
29
+ Bytes: "bytea",
30
+ Decimal: "numeric",
31
+ Uuid: "uuid",
32
+ Timestamptz: "timestamptz",
33
+ JsonB: "jsonb",
34
+ VarChar: "varchar",
35
+ Integer: "int4",
36
+ Oid: "oid",
37
+ };
38
+ function parseType(opts) {
39
+ var _a, _b, _c, _d;
40
+ let type = "";
41
+ let autoincrement = ((_a = opts === null || opts === void 0 ? void 0 : opts.default) === null || _a === void 0 ? void 0 : _a.name) === "autoincrement";
42
+ let native = (_b = opts.nativeType) === null || _b === void 0 ? void 0 : _b[0];
43
+ if (!!native)
44
+ native = PRISMA_TYPE_MAP[native] || native;
45
+ let primatype = opts.type;
46
+ let datatype = native || PRISMA_TYPE_MAP[primatype] || primatype;
47
+ let serial = false;
48
+ if (datatype === "int2" && autoincrement) {
49
+ type = "serial2";
50
+ serial = true;
51
+ }
52
+ else if (datatype === "int4" && autoincrement) {
53
+ type = "serial";
54
+ serial = true;
55
+ }
56
+ else if (datatype === "int8" && autoincrement) {
57
+ type = "serial8";
58
+ serial = true;
59
+ }
60
+ else if (datatype === "oid" && autoincrement) {
61
+ type = "serial";
62
+ serial = true;
63
+ }
64
+ else if (!!opts.nativeType) {
65
+ let args = "";
66
+ if (((_c = opts.nativeType) === null || _c === void 0 ? void 0 : _c[1].length) > 0)
67
+ args = `(${(_d = opts.nativeType) === null || _d === void 0 ? void 0 : _d[1].join(", ")})`;
68
+ type = `${native}${args}`;
69
+ }
70
+ else if (!!PRISMA_TYPE_MAP[opts.type]) {
71
+ type = PRISMA_TYPE_MAP[opts.type];
72
+ }
73
+ else
74
+ type = opts.type;
75
+ if (!type)
76
+ type = "text";
77
+ if (opts.isList)
78
+ return {
79
+ type: `${type}[]`,
80
+ serial
81
+ };
82
+ return {
83
+ type: type,
84
+ serial: serial
85
+ };
86
+ }
87
+ function parseDefault(opts, typed) {
88
+ let defaults = "";
89
+ if (opts.hasDefaultValue && !!opts.default && Array.isArray(opts.default)) {
90
+ defaults = opts.default.map(value => (0, escape_1.val)(value)).join(", ");
91
+ defaults = ` array[ ${defaults} ]`;
92
+ }
93
+ else if (opts.hasDefaultValue && !!opts.default && typeof opts.default === "object" && !Array.isArray(opts.default)) {
94
+ defaults = PRISMA_DEFAULTS[opts.default.name](opts.default);
95
+ }
96
+ else if (opts.hasDefaultValue && !!opts.default) {
97
+ defaults = (0, escape_1.val)(opts.default + "");
98
+ }
99
+ if (!(defaults === null || defaults === void 0 ? void 0 : defaults.length))
100
+ return "";
101
+ return `${defaults}::${typed}`;
102
+ }
103
+ //# sourceMappingURL=engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["engine.ts"],"names":[],"mappings":"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"}