@prisma-psm/core 1.0.4 → 1.0.6

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 (41) hide show
  1. package/README.en.md +189 -0
  2. package/README.md +98 -99
  3. package/README.pt.md +196 -0
  4. package/package.json +23 -4
  5. package/src/configs.d.ts +2 -0
  6. package/src/configs.d.ts.map +1 -1
  7. package/src/configs.ts +2 -0
  8. package/src/driver.d.ts +26 -7
  9. package/src/driver.d.ts.map +1 -1
  10. package/src/driver.ts +33 -4
  11. package/src/launcher/commands/{migrate.d.ts → commit.d.ts} +1 -1
  12. package/src/launcher/commands/commit.d.ts.map +1 -0
  13. package/src/launcher/commands/{migrate.js → commit.js} +8 -6
  14. package/src/launcher/commands/commit.js.map +1 -0
  15. package/src/launcher/commands/{migrate.ts → commit.ts} +6 -5
  16. package/src/launcher/commands/deploy.d.ts.map +1 -1
  17. package/src/launcher/commands/deploy.js +11 -3
  18. package/src/launcher/commands/deploy.js.map +1 -1
  19. package/src/launcher/commands/deploy.ts +11 -4
  20. package/src/launcher/commands/generate.d.ts.map +1 -1
  21. package/src/launcher/commands/generate.js +1 -1
  22. package/src/launcher/commands/generate.js.map +1 -1
  23. package/src/launcher/commands/generate.ts +1 -2
  24. package/src/launcher/index.js +25 -3
  25. package/src/launcher/index.js.map +1 -1
  26. package/src/launcher/index.ts +1 -4
  27. package/src/tools/deploy.d.ts +1 -0
  28. package/src/tools/deploy.d.ts.map +1 -1
  29. package/src/tools/deploy.js +151 -0
  30. package/src/tools/deploy.js.map +1 -1
  31. package/src/tools/deploy.ts +135 -0
  32. package/src/tools/generate.d.ts.map +1 -1
  33. package/src/tools/generate.js +9 -4
  34. package/src/tools/generate.js.map +1 -1
  35. package/src/tools/generate.ts +10 -5
  36. package/src/tools/migrate.d.ts.map +1 -1
  37. package/src/tools/migrate.js +22 -4
  38. package/src/tools/migrate.js.map +1 -1
  39. package/src/tools/migrate.ts +25 -5
  40. package/src/launcher/commands/migrate.d.ts.map +0 -1
  41. package/src/launcher/commands/migrate.js.map +0 -1
@@ -1,3 +1,154 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ var __importDefault = (this && this.__importDefault) || function (mod) {
35
+ return (mod && mod.__esModule) ? mod : { "default": mod };
36
+ };
2
37
  Object.defineProperty(exports, "__esModule", { value: true });
38
+ exports.deploy = deploy;
39
+ const fs = __importStar(require("node:fs"));
40
+ const yaml = __importStar(require("yaml"));
41
+ const Path = __importStar(require("node:path"));
42
+ const chalk_1 = __importDefault(require("chalk"));
43
+ const prisma = [
44
+ `${process.cwd()}/schema.prisma`,
45
+ `${process.cwd()}/prisma/schema.prisma`,
46
+ ];
47
+ const TAG = "PSM DEPLOY >";
48
+ function deploy(opts) {
49
+ return __awaiter(this, void 0, void 0, function* () {
50
+ var _a;
51
+ console.log("Sdsd sd sdsdsds");
52
+ require('dotenv').config();
53
+ let schema = opts.schema;
54
+ if (!schema) {
55
+ schema = prisma.find(value => {
56
+ return fs.existsSync(value);
57
+ });
58
+ }
59
+ if (!schema) {
60
+ return console.error("Migrate error: schema.prisma file not found!");
61
+ }
62
+ console.log(`PSM deploy base do schema ${schema}`);
63
+ const home = Path.dirname(schema);
64
+ const psm_yml = Path.join(home, "psm.yml");
65
+ const psm_sql = Path.join(home, "psm.sql");
66
+ if (!fs.existsSync(psm_yml)) {
67
+ return console.error("Migrate error: psm.yml file not found!");
68
+ }
69
+ if (!fs.existsSync(psm_sql)) {
70
+ return console.error("Migrate error: psm.sql file not found!");
71
+ }
72
+ console.log(`PSM migrate using ${psm_yml}`);
73
+ const psm = yaml.parse(fs.readFileSync(psm_yml).toString());
74
+ const driver = yield Promise.resolve(`${psm.psm.driver}`).then(s => __importStar(require(s)));
75
+ let migrator = driver.migrator({
76
+ url: process.env[psm.psm.url],
77
+ migrate: "",
78
+ check: "",
79
+ core: fs.readFileSync(psm_sql).toString(),
80
+ });
81
+ let result = yield migrator.core();
82
+ if (!result.success) {
83
+ console.error(result.error);
84
+ result.messages.forEach(error => {
85
+ console.error(error);
86
+ });
87
+ return console.error("Migrate error: Core failed!");
88
+ }
89
+ const revisions = Path.join(home, `psm/revisions/schema`);
90
+ let revs = fs.readdirSync(revisions)
91
+ .filter(n => fs.statSync(Path.join(revisions, n)).isDirectory())
92
+ .map(n => {
93
+ let psm = yaml.parse(fs.readFileSync(Path.join(revisions, n, "psm.yml")).toString());
94
+ let migrate = fs.readFileSync(Path.join(revisions, n, "migration.sql")).toString();
95
+ return {
96
+ psm,
97
+ migrate
98
+ };
99
+ });
100
+ if (!revs.length) {
101
+ console.log(TAG, "No migrate commited!");
102
+ console.log(TAG, `Use ${chalk_1.default.bold("psm migrate commit")} first!`);
103
+ return;
104
+ }
105
+ const missingPreview = revs.filter((n, i) => {
106
+ return (!!n.psm.migration.preview && !revs.find(p => p.psm.migration.revision === n.psm.migration.preview))
107
+ || (i > 0 && !n.psm.migration.preview);
108
+ });
109
+ if (!!missingPreview.length) {
110
+ const missings = missingPreview.map(n => `${n.psm.psm.migration} - ${n.psm.migration.label} at ${n.psm.migration.instate}`);
111
+ console.log(`MISSING PREVIEW migration for...\n`, missings.join("\n"));
112
+ return;
113
+ }
114
+ let migrated = yield driver.migrated({
115
+ url: process.env[psm.psm.url],
116
+ sys: psm.psm.sys
117
+ });
118
+ if (!migrated.success) {
119
+ console.error(migrated.error);
120
+ migrated.messages.forEach(error => {
121
+ console.error(error);
122
+ });
123
+ return console.error("Load Migrated failed!");
124
+ }
125
+ for (let i = 0; i < revs.length; i++) {
126
+ let next = revs[i];
127
+ let pl = !!((_a = next.psm.migration.label) === null || _a === void 0 ? void 0 : _a.length) ? ` - ${next.psm.migration.label} ` : " ";
128
+ let label = `RevNo ${chalk_1.default.bold(next.psm.migration.revision)}${pl}commited at ${next.psm.migration.instate}`;
129
+ const mig = migrated.migrated.find(value => value.sid === next.psm.psm.migration);
130
+ if (!!mig) {
131
+ console.log(`${label} is migrated at ${mig.date}`);
132
+ continue;
133
+ }
134
+ const migrator = driver.migrator({
135
+ url: process.env[next.psm.psm.url],
136
+ migrate: next.migrate,
137
+ check: "",
138
+ core: "",
139
+ });
140
+ const result = yield migrator.migrate();
141
+ if (!result.success) {
142
+ console.error(result.error);
143
+ result.messages.forEach(error => {
144
+ console.error(error);
145
+ });
146
+ console.error("Migrate error: Push migration failed!");
147
+ console.log(`${label} is migrated at ${mig.date} - ${chalk_1.default.redBright.bold("FAILED")}`);
148
+ return;
149
+ }
150
+ console.log(`${label} is migrated at ${mig.date} - ${chalk_1.default.greenBright.bold("SUCCESS")}`);
151
+ }
152
+ });
153
+ }
3
154
  //# sourceMappingURL=deploy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.js","sourceRoot":"","sources":["deploy.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"deploy.js","sourceRoot":"","sources":["deploy.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,141 @@
1
+ import * as fs from "node:fs";
2
+ import * as yaml from "yaml";
3
+ import * as Path from "node:path";
4
+ import {PSMConfigFile} from "../configs";
5
+ import chalk from "chalk";
6
+ import {PSMDriver} from "../driver";
7
+
1
8
  export interface DeployOptions {
2
9
  schema?:string
3
10
  generate?:string
4
11
  label?:string
5
12
  "generate-command":string
13
+ }
14
+ const prisma = [
15
+ `${process.cwd()}/schema.prisma`,
16
+ `${process.cwd()}/prisma/schema.prisma`,
17
+ ];
18
+
19
+ const TAG = "PSM DEPLOY >"
20
+
21
+ export async function deploy( opts: DeployOptions) {
22
+ console.log("Sdsd sd sdsdsds")
23
+ require('dotenv').config();
24
+ let schema = opts.schema;
25
+ if( !schema ) {
26
+ schema = prisma.find( value => {
27
+ return fs.existsSync( value );
28
+ })
29
+ }
30
+ if( !schema ) {
31
+ return console.error( "Migrate error: schema.prisma file not found!" );
32
+ }
33
+ console.log(`PSM deploy base do schema ${schema}`);
34
+
35
+ const home = Path.dirname( schema );
36
+ const psm_yml = Path.join( home, "psm.yml" );
37
+ const psm_sql = Path.join( home, "psm.sql");
38
+ if( !fs.existsSync( psm_yml ) ) {
39
+ return console.error( "Migrate error: psm.yml file not found!" );
40
+ }
41
+ if( !fs.existsSync( psm_sql ) ) {
42
+ return console.error( "Migrate error: psm.sql file not found!" );
43
+ }
44
+
45
+
46
+ console.log(`PSM migrate using ${psm_yml}`);
47
+ const psm = yaml.parse( fs.readFileSync( psm_yml ).toString() ) as PSMConfigFile;
48
+ const driver = await import( psm.psm.driver ) as PSMDriver;
49
+ let migrator = driver.migrator({
50
+ url: process.env[psm.psm.url],
51
+ migrate: "",
52
+ check: "",
53
+ core: fs.readFileSync( psm_sql ).toString(),
54
+ });
55
+
56
+ let result = await migrator.core();
57
+ if( !result.success ) {
58
+ console.error( result.error );
59
+ result.messages.forEach( error => {
60
+ console.error( error );
61
+ });
62
+ return console.error( "Migrate error: Core failed!" );
63
+ }
64
+
65
+
66
+ const revisions = Path.join( home, `psm/revisions/schema`);
67
+ let revs = fs.readdirSync( revisions )
68
+ .filter( n => fs.statSync( Path.join( revisions, n)).isDirectory() )
69
+ .map( n => {
70
+ let psm = yaml.parse( fs.readFileSync( Path.join( revisions, n, "psm.yml") ).toString() ) as PSMConfigFile
71
+
72
+ let migrate = fs.readFileSync( Path.join( revisions, n, "migration.sql") ).toString()
73
+ return {
74
+ psm,
75
+ migrate
76
+ }
77
+ });
78
+
79
+ if( !revs.length ){
80
+ console.log( TAG, "No migrate commited!" );
81
+ console.log( TAG, `Use ${ chalk.bold("psm migrate commit")} first!` );
82
+ return;
83
+ }
84
+
85
+ const missingPreview = revs.filter( (n, i) => {
86
+ return (!!n.psm.migration.preview && !revs.find( p => p.psm.migration.revision === n.psm.migration.preview))
87
+ || ( i > 0 && !n.psm.migration.preview)
88
+ });
89
+
90
+ if( !!missingPreview.length){
91
+ const missings = missingPreview.map( n=> `${n.psm.psm.migration} - ${n.psm.migration.label} at ${n.psm.migration.instate}` );
92
+ console.log( `MISSING PREVIEW migration for...\n`, missings.join("\n"));
93
+ return;
94
+ }
95
+
96
+
97
+ let migrated = await driver.migrated({
98
+ url: process.env[psm.psm.url],
99
+ sys: psm.psm.sys
100
+ });
101
+
102
+ if( !migrated.success ) {
103
+ console.error( migrated.error );
104
+ migrated.messages.forEach( error => {
105
+ console.error( error );
106
+ });
107
+ return console.error( "Load Migrated failed!" );
108
+ }
109
+
110
+ for (let i = 0; i < revs.length; i++) {
111
+ let next = revs[i];
112
+ let pl = !!next.psm.migration.label?.length ? ` - ${next.psm.migration.label} `: " "
113
+ let label = `RevNo ${ chalk.bold(next.psm.migration.revision)}${pl}commited at ${next.psm.migration.instate}`;
114
+ const mig = migrated.migrated.find( value => value.sid === next.psm.psm.migration );
115
+
116
+ if( !!mig ) {
117
+ console.log( `${label} is migrated at ${mig.date}` );
118
+ continue;
119
+ }
120
+ const migrator = driver.migrator({
121
+ url: process.env[next.psm.psm.url],
122
+ migrate: next.migrate,
123
+ check: "",
124
+ core: "",
125
+ });
126
+
127
+ const result = await migrator.migrate();
128
+
129
+ if( !result.success ) {
130
+ console.error( result.error );
131
+ result.messages.forEach( error => {
132
+ console.error( error );
133
+ });
134
+ console.error( "Migrate error: Push migration failed!" );
135
+ console.log( `${label} is migrated at ${mig.date} - ${chalk.redBright.bold( "FAILED")}` );
136
+ return;
137
+ }
138
+ console.log( `${label} is migrated at ${mig.date} - ${chalk.greenBright.bold( "SUCCESS")}` );
139
+
140
+ }
6
141
  }
@@ -1 +1 @@
1
- {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["generate.ts"],"names":[],"mappings":"AAuBA,wBAAgB,QAAQ,SA+HvB"}
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["generate.ts"],"names":[],"mappings":"AAuBA,wBAAgB,QAAQ,SAoIvB"}
@@ -93,21 +93,24 @@ function generate() {
93
93
  migration: migration,
94
94
  shadow: `psm_shadow_${rand()}`,
95
95
  backup: "backup",
96
- sys: "sys",
96
+ sys: configs.sys || "sys",
97
97
  };
98
98
  const generator = driver.generator(opts);
99
99
  const check = generator.check();
100
100
  const migrate = generator.migrate();
101
+ const core = generator.core();
101
102
  write(check, next, "migration.next.check.sql");
102
103
  let test;
103
104
  if (!!url) {
104
- test = yield driver.migrator({
105
+ const migrator = driver.migrator({
105
106
  migrate: migrate,
106
107
  check: check,
108
+ core: core,
107
109
  url: url
108
- }).test();
110
+ });
111
+ yield migrator.core();
112
+ test = yield migrator.test();
109
113
  }
110
- console.log(test);
111
114
  if (!configs.url) {
112
115
  write(migrate, next, "migration.next.sql");
113
116
  }
@@ -136,6 +139,7 @@ function generate() {
136
139
  url: configs.url,
137
140
  output: output,
138
141
  schema: options.schemaPath,
142
+ sys: configs.sys || "sys",
139
143
  },
140
144
  test: {
141
145
  check: !!test ? "checked" : "skipped",
@@ -143,6 +147,7 @@ function generate() {
143
147
  messages: test === null || test === void 0 ? void 0 : test.messages
144
148
  }
145
149
  };
150
+ fs.writeFileSync(Path.join(home, "psm.sql"), core);
146
151
  fs.writeFileSync(Path.join(home, "psm.yml"), yaml.stringify(psm, null, {
147
152
  version: "next",
148
153
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["generate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["generate.ts"],"names":[],"mappings":"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"}
@@ -80,13 +80,14 @@ export function generate(){
80
80
  migration: migration,
81
81
  shadow: `psm_shadow_${rand()}`,
82
82
  backup: "backup",
83
- sys: "sys",
83
+ sys: configs.sys||"sys",
84
84
  };
85
85
 
86
86
  const generator = driver.generator(opts);
87
87
 
88
88
  const check = generator.check();
89
89
  const migrate = generator.migrate();
90
+ const core = generator.core();
90
91
 
91
92
  write( check, next, "migration.next.check.sql" );
92
93
 
@@ -94,15 +95,17 @@ export function generate(){
94
95
  let test:PSMMigrationResult|undefined;
95
96
 
96
97
  if( !!url ) {
97
- test = await driver.migrator({
98
+ const migrator = driver.migrator({
98
99
  migrate: migrate,
99
100
  check: check,
101
+ core: core,
100
102
  url: url as string
101
- }).test();
102
- }
103
+ });
103
104
 
105
+ await migrator.core();
104
106
 
105
- console.log( test );
107
+ test = await migrator.test();
108
+ }
106
109
 
107
110
  if( !configs.url ){
108
111
  write( migrate, next, "migration.next.sql" );
@@ -132,6 +135,7 @@ export function generate(){
132
135
  url: configs.url,
133
136
  output: output,
134
137
  schema: options.schemaPath,
138
+ sys: configs.sys||"sys",
135
139
  },
136
140
  test: {
137
141
  check: !!test? "checked": "skipped",
@@ -139,6 +143,7 @@ export function generate(){
139
143
  messages: test?.messages
140
144
  }
141
145
  }
146
+ fs.writeFileSync( Path.join( home, "psm.sql" ), core )
142
147
  fs.writeFileSync( Path.join( home, "psm.yml" ), yaml.stringify(psm, null, {
143
148
  version: "next",
144
149
  }) )
@@ -1 +1 @@
1
- {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["migrate.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,cAAc;IAC3B,MAAM,CAAC,EAAC,MAAM,CAAA;IACd,QAAQ,CAAC,EAAC,MAAM,CAAA;IAChB,KAAK,CAAC,EAAC,MAAM,CAAA;IACb,kBAAkB,EAAC,MAAM,CAAA;CAC5B;AACD,wBAAsB,OAAO,CAAE,IAAI,EAAC,cAAc,iBAiFjD"}
1
+ {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["migrate.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,cAAc;IAC3B,MAAM,CAAC,EAAC,MAAM,CAAA;IACd,QAAQ,CAAC,EAAC,MAAM,CAAA;IAChB,KAAK,CAAC,EAAC,MAAM,CAAA;IACb,kBAAkB,EAAC,MAAM,CAAA;CAC5B;AACD,wBAAsB,OAAO,CAAE,IAAI,EAAC,cAAc,iBAqGjD"}
@@ -44,7 +44,6 @@ const prisma = [
44
44
  function migrate(opts) {
45
45
  return __awaiter(this, void 0, void 0, function* () {
46
46
  require('dotenv').config();
47
- console.log(opts);
48
47
  if (opts.generate) {
49
48
  let command = opts["generate-command"];
50
49
  if (!command)
@@ -65,9 +64,13 @@ function migrate(opts) {
65
64
  console.log(`PSM migrate base do schema ${schema}`);
66
65
  const home = Path.dirname(schema);
67
66
  const psm_yml = Path.join(home, "psm.yml");
67
+ const psm_sql = Path.join(home, "psm.sql");
68
68
  if (!fs.existsSync(psm_yml)) {
69
69
  return console.error("Migrate error: psm.yml file not found!");
70
70
  }
71
+ if (!fs.existsSync(psm_sql)) {
72
+ return console.error("Migrate error: psm.sql file not found!");
73
+ }
71
74
  console.log(`PSM migrate using ${psm_yml}`);
72
75
  const psm = yaml.parse(fs.readFileSync(psm_yml).toString());
73
76
  const next = Path.join(psm.psm.output, "next/migration.next.sql");
@@ -83,8 +86,17 @@ function migrate(opts) {
83
86
  url: process.env[psm.psm.url],
84
87
  migrate: fs.readFileSync(next).toString(),
85
88
  check: fs.readFileSync(check).toString(),
89
+ core: fs.readFileSync(psm_sql).toString(),
86
90
  });
87
- let result = yield migrator.test();
91
+ let result = yield migrator.core();
92
+ if (!result.success) {
93
+ console.error(result.error);
94
+ result.messages.forEach(error => {
95
+ console.error(error);
96
+ });
97
+ return console.error("Migrate error: Core failed!");
98
+ }
99
+ result = yield migrator.test();
88
100
  if (!result.success) {
89
101
  console.error(result.error);
90
102
  result.messages.forEach(error => {
@@ -98,15 +110,21 @@ function migrate(opts) {
98
110
  result.messages.forEach(error => {
99
111
  console.error(error);
100
112
  });
101
- return console.error("Migrate error: Check shadow failed!");
113
+ return console.error("Migrate error: Commit migration failed!");
102
114
  }
103
115
  const moment = require('moment');
104
116
  let label = "";
105
117
  if (!!opts.label)
106
118
  label = ` - ${sanitizeLabel(opts.label)}`;
119
+ let preview;
120
+ const last = getLatestFolder(Path.join(home, `psm/revisions/schema`));
121
+ if (!!last) {
122
+ preview = yaml.parse(fs.readFileSync(Path.join(home, "psm/revisions/schema", last, "psm.yml")).toString());
123
+ }
107
124
  psm.migration = {
125
+ revision: `${moment().format('YYYYMMDDHHmmss')} - ${psm.psm.migration}`,
108
126
  instate: moment().format('YYYYMMDDHHmmss'),
109
- preview: getLatestFolder(Path.join(home, `psm/revisions/schema`)),
127
+ preview: preview === null || preview === void 0 ? void 0 : preview.migration.revision,
110
128
  label: opts.label
111
129
  };
112
130
  const nextRev = Path.join(home, `psm/revisions/schema/${psm.migration.instate}${label}`);
@@ -1 +1 @@
1
- {"version":3,"file":"migrate.js","sourceRoot":"","sources":["migrate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migrate.js","sourceRoot":"","sources":["migrate.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,6 @@ export interface MigrateOptions {
19
19
  }
20
20
  export async function migrate( opts:MigrateOptions ) {
21
21
  require('dotenv').config();
22
- console.log( opts )
23
22
  if( opts.generate ) {
24
23
  let command = opts["generate-command"];
25
24
  if( !command) command = "prisma generate"
@@ -41,9 +40,13 @@ export async function migrate( opts:MigrateOptions ) {
41
40
 
42
41
  const home = Path.dirname( schema );
43
42
  const psm_yml = Path.join( home, "psm.yml" );
43
+ const psm_sql = Path.join( home, "psm.sql");
44
44
  if( !fs.existsSync( psm_yml ) ) {
45
45
  return console.error( "Migrate error: psm.yml file not found!" );
46
46
  }
47
+ if( !fs.existsSync( psm_sql ) ) {
48
+ return console.error( "Migrate error: psm.sql file not found!" );
49
+ }
47
50
 
48
51
  console.log(`PSM migrate using ${psm_yml}`);
49
52
  const psm = yaml.parse( fs.readFileSync( psm_yml ).toString() ) as PSMConfigFile;
@@ -63,9 +66,19 @@ export async function migrate( opts:MigrateOptions ) {
63
66
  url: process.env[psm.psm.url],
64
67
  migrate: fs.readFileSync( next ).toString(),
65
68
  check: fs.readFileSync( check ).toString(),
69
+ core: fs.readFileSync( psm_sql ).toString(),
66
70
  });
67
71
 
68
- let result = await migrator.test();
72
+ let result = await migrator.core();
73
+ if( !result.success ) {
74
+ console.error( result.error );
75
+ result.messages.forEach( error => {
76
+ console.error( error );
77
+ });
78
+ return console.error( "Migrate error: Core failed!" );
79
+ }
80
+
81
+ result = await migrator.test();
69
82
  if( !result.success ) {
70
83
  console.error( result.error );
71
84
  result.messages.forEach( error => {
@@ -74,21 +87,28 @@ export async function migrate( opts:MigrateOptions ) {
74
87
  return console.error( "Migrate error: Check shadow failed!" );
75
88
  }
76
89
 
90
+
77
91
  result = await migrator.migrate();
78
92
  if( !result.success ) {
79
93
  console.error( result.error );
80
94
  result.messages.forEach( error => {
81
95
  console.error( error );
82
96
  });
83
- return console.error( "Migrate error: Check shadow failed!" );
97
+ return console.error( "Migrate error: Commit migration failed!" );
84
98
  }
85
99
 
86
100
  const moment = require('moment');
87
101
  let label = "";
88
- if( !!opts.label ) label = ` - ${sanitizeLabel( opts.label )}`
102
+ if( !!opts.label ) label = ` - ${sanitizeLabel( opts.label )}`;
103
+ let preview:PSMConfigFile;
104
+ const last = getLatestFolder( Path.join( home, `psm/revisions/schema`));
105
+ if( !!last ){
106
+ preview = yaml.parse( fs.readFileSync( Path.join( home, "psm/revisions/schema", last, "psm.yml")).toString() ) as PSMConfigFile;
107
+ }
89
108
  psm.migration = {
109
+ revision: `${ moment().format( 'YYYYMMDDHHmmss' ) } - ${psm.psm.migration}`,
90
110
  instate: moment().format( 'YYYYMMDDHHmmss' ),
91
- preview: getLatestFolder( Path.join( home, `psm/revisions/schema`)),
111
+ preview: preview?.migration.revision,
92
112
  label: opts.label
93
113
  }
94
114
  const nextRev = Path.join( home, `psm/revisions/schema/${psm.migration.instate}${label}`);
@@ -1 +0,0 @@
1
- {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["migrate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,OAAO,CAAC;AACpC,OAAO,EAAU,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAG5D,QAAA,MAAM,OAAO,EAAC,aAAa,CAAC,cAAc,EAAE,cAAc,CA2BzD,CAAA;AAED,SAAS,OAAO,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"migrate.js","sourceRoot":"","sources":["migrate.ts"],"names":[],"mappings":";AAIA,MAAM,OAAO,GAAiD;IAC1D,OAAO,EAAE,gBAAgB;IACzB,QAAQ,EAAE,oDAAoD;IAC9D,OAAO,EAAE,IAAI,CAAC,EAAE;QACZ,IAAI,CAAC,OAAO,CAAE,QAAQ,EAAE;YACpB,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,GAAG;SACb,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE;YACnB,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,GAAG;SACb,CAAC,CAAC,OAAO,CAAE,OAAO,EAAE;YACjB,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,GAAG;SAEb,CAAC,CAAC,OAAO,CAAE,kBAAkB,EAAE;YAC5B,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,GAAG;SACb,CAAC,CAAA;QAEF,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,EAAC,CAAE,IAAI,EAAE,EAAE;QACd,OAAO,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;QACnB,kCAAkC;QAClC,wBAAwB;QACxB,KAAK;IACT,CAAC;CACJ,CAAA;AAED,iBAAS,OAAO,CAAC"}