@prisma-psm/core 1.0.54 → 1.0.56

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prisma-psm/core",
3
- "version": "1.0.54",
3
+ "version": "1.0.56",
4
4
  "description": "PSM - Prisma SAFE MIGRATE: ferramenta CLI para migração segura de bancos Prisma com suporte avançado.",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -1 +1 @@
1
- {"version":3,"file":"commit.d.ts","sourceRoot":"","sources":["commit.ts"],"names":[],"mappings":"AAcA,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,MAAM,CAAC,IAAI,EAAC,cAAc,iBAyI/C"}
1
+ {"version":3,"file":"commit.d.ts","sourceRoot":"","sources":["commit.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,cAAc;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,MAAM,CAAC;CAC9B;AAED,wBAAsB,MAAM,CAAC,IAAI,EAAE,cAAc,iBAsKhD"}
@@ -39,6 +39,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.commit = commit;
40
40
  const fs = __importStar(require("node:fs"));
41
41
  const Path = __importStar(require("node:path"));
42
+ const os = __importStar(require("node:os")); // <-- adicionado para diretório temporário
42
43
  const yaml = __importStar(require("yaml"));
43
44
  const tar = __importStar(require("tar"));
44
45
  const chalk_1 = __importDefault(require("chalk"));
@@ -49,6 +50,7 @@ const fs_1 = require("../utils/fs");
49
50
  const execute_1 = require("./execute");
50
51
  function commit(opts) {
51
52
  return __awaiter(this, void 0, void 0, function* () {
53
+ var _a;
52
54
  require('dotenv').config();
53
55
  const moment = require('moment');
54
56
  if (opts.generate) {
@@ -56,22 +58,45 @@ function commit(opts) {
56
58
  if (!command)
57
59
  command = "prisma generate";
58
60
  cp.spawnSync("npx", [...command.split(" ")], {
59
- cwd: process.cwd()
61
+ cwd: process.cwd(),
60
62
  });
61
63
  }
62
64
  const { psm, psm_sql, driver, home } = yield (0, common_1.psmLockup)({ schema: opts.schema });
63
65
  const next = Path.join(psm.psm.output, "next/migration.next.sql");
64
66
  const check = Path.join(psm.psm.output, "next/migration.next.check.sql");
67
+ // -------------------- Leitura do preview corrigida --------------------
65
68
  let preview;
66
- const last = (0, fs_1.getLatestFolder)(Path.join(home, `psm/revisions/schema`));
67
- if (!!last) {
68
- preview = yaml.parse(fs.readFileSync(Path.join(home, "psm/revisions/schema", last, "psm.yml")).toString());
69
+ const revisionsDir = Path.join(home, "psm/revisions/schema");
70
+ const lastFile = (0, fs_1.getLatestFolder)(revisionsDir);
71
+ if (lastFile) {
72
+ const tarPath = Path.join(revisionsDir, lastFile);
73
+ const tempDir = fs.mkdtempSync(Path.join(os.tmpdir(), "psm-preview-"));
74
+ try {
75
+ yield tar.x({
76
+ file: tarPath,
77
+ cwd: tempDir,
78
+ });
79
+ const extractedItems = fs.readdirSync(tempDir);
80
+ if (extractedItems.length > 0) {
81
+ // Assume que dentro do tar há uma única pasta com o mesmo nome da revisão
82
+ const extractedDir = Path.join(tempDir, extractedItems[0]);
83
+ const psmYamlPath = Path.join(extractedDir, "psm.yml");
84
+ if (fs.existsSync(psmYamlPath)) {
85
+ const content = fs.readFileSync(psmYamlPath, "utf-8");
86
+ preview = yaml.parse(content);
87
+ }
88
+ }
89
+ }
90
+ finally {
91
+ fs.rmSync(tempDir, { recursive: true, force: true });
92
+ }
69
93
  }
94
+ // ---------------------------------------------------------------------
70
95
  psm.migration = {
71
96
  revision: `${moment().format('YYYYMMDDHHmmss')} - ${psm.psm.migration}`,
72
97
  instante: moment().format('YYYYMMDDHHmmss'),
73
- preview: preview === null || preview === void 0 ? void 0 : preview.migration.revision,
74
- label: opts.label
98
+ preview: (_a = preview === null || preview === void 0 ? void 0 : preview.migration) === null || _a === void 0 ? void 0 : _a.revision,
99
+ label: opts.label,
75
100
  };
76
101
  let label = "";
77
102
  if (!!opts.label)
@@ -100,7 +125,7 @@ function commit(opts) {
100
125
  const fetchResponse = yield (0, deploy_1.fetch)({
101
126
  psm: psm,
102
127
  driver: driver,
103
- home: home
128
+ home: home,
104
129
  });
105
130
  if (fetchResponse.error) {
106
131
  throw fetchResponse.error;
@@ -125,7 +150,7 @@ function commit(opts) {
125
150
  const custom = (0, execute_1.CreateCustom)({
126
151
  home: home,
127
152
  nextRev: nextRev,
128
- migrator: migrator
153
+ migrator: migrator,
129
154
  }, "functions", "triggers", "views");
130
155
  result = yield migrator.migrate(custom).catch(reason => {
131
156
  return { error: reason, success: false };
@@ -148,10 +173,10 @@ function commit(opts) {
148
173
  const archiveName = Path.join(home || process.cwd(), `psm/revisions/schema/${psm.migration.instante}${label}.tar.gz`);
149
174
  yield tar.c({
150
175
  gzip: {
151
- level: 9
176
+ level: 9,
152
177
  },
153
178
  file: archiveName,
154
- cwd: Path.dirname(nextRev)
179
+ cwd: Path.dirname(nextRev),
155
180
  }, [Path.basename(nextRev)]);
156
181
  console.log(chalk_1.default.green(`✔ Migration compactada: ${archiveName}`));
157
182
  fs.rmSync(nextRev, { recursive: true, force: true });
@@ -1 +1 @@
1
- {"version":3,"file":"commit.js","sourceRoot":"","sources":["commit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commit.js","sourceRoot":"","sources":["commit.ts"],"names":[],"mappings":"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"}
@@ -2,149 +2,180 @@
2
2
 
3
3
  import * as fs from "node:fs";
4
4
  import * as Path from "node:path";
5
+ import * as os from "node:os"; // <-- adicionado para diretório temporário
5
6
  import * as yaml from "yaml";
6
7
  import * as tar from "tar";
7
8
  import chalk from "chalk";
8
- import {PSMConfigFile} from "../configs";
9
+ import { PSMConfigFile } from "../configs";
9
10
  import * as cp from "node:child_process";
10
- import {fetch} from "./deploy";
11
- import {psmLockup} from "./common";
12
- import {getLatestFolder, gitAddPath, sanitizeLabel} from "../utils/fs";
13
- import {CreateCustom} from "./execute";
11
+ import { fetch } from "./deploy";
12
+ import { psmLockup } from "./common";
13
+ import { getLatestFolder, gitAddPath, sanitizeLabel } from "../utils/fs";
14
+ import { CreateCustom } from "./execute";
14
15
 
15
16
  export interface MigrateOptions {
16
- schema?:string
17
- generate?:string
18
- label?:string
19
- "generate-command":string
17
+ schema?: string;
18
+ generate?: string;
19
+ label?: string;
20
+ "generate-command": string;
20
21
  }
21
- export async function commit(opts:MigrateOptions ) {
22
+
23
+ export async function commit(opts: MigrateOptions) {
22
24
  require('dotenv').config();
23
25
  const moment = require('moment');
24
26
 
25
- if( opts.generate ) {
27
+ if (opts.generate) {
26
28
  let command = opts["generate-command"];
27
- if( !command) command = "prisma generate"
28
- cp.spawnSync( "npx", [ ...command.split(" ") ], {
29
- cwd: process.cwd()
29
+ if (!command) command = "prisma generate";
30
+ cp.spawnSync("npx", [...command.split(" ")], {
31
+ cwd: process.cwd(),
30
32
  });
31
33
  }
32
34
 
33
35
  const { psm, psm_sql, driver, home } = await psmLockup({ schema: opts.schema });
34
- const next = Path.join( psm.psm.output, "next/migration.next.sql");
35
- const check = Path.join( psm.psm.output, "next/migration.next.check.sql");
36
-
37
-
38
- let preview:PSMConfigFile;
39
- const last = getLatestFolder( Path.join( home, `psm/revisions/schema`));
40
- if( !!last ){
41
- preview = yaml.parse( fs.readFileSync( Path.join( home, "psm/revisions/schema", last, "psm.yml")).toString() ) as PSMConfigFile;
36
+ const next = Path.join(psm.psm.output, "next/migration.next.sql");
37
+ const check = Path.join(psm.psm.output, "next/migration.next.check.sql");
38
+
39
+ // -------------------- Leitura do preview corrigida --------------------
40
+ let preview: PSMConfigFile | undefined;
41
+ const revisionsDir = Path.join(home, "psm/revisions/schema");
42
+ const lastFile = getLatestFolder(revisionsDir);
43
+
44
+ if (lastFile) {
45
+ const tarPath = Path.join(revisionsDir, lastFile);
46
+ const tempDir = fs.mkdtempSync(Path.join(os.tmpdir(), "psm-preview-"));
47
+ try {
48
+ await tar.x({
49
+ file: tarPath,
50
+ cwd: tempDir,
51
+ });
52
+ const extractedItems = fs.readdirSync(tempDir);
53
+ if (extractedItems.length > 0) {
54
+ // Assume que dentro do tar há uma única pasta com o mesmo nome da revisão
55
+ const extractedDir = Path.join(tempDir, extractedItems[0]);
56
+ const psmYamlPath = Path.join(extractedDir, "psm.yml");
57
+ if (fs.existsSync(psmYamlPath)) {
58
+ const content = fs.readFileSync(psmYamlPath, "utf-8");
59
+ preview = yaml.parse(content) as PSMConfigFile;
60
+ }
61
+ }
62
+ } finally {
63
+ fs.rmSync(tempDir, { recursive: true, force: true });
64
+ }
42
65
  }
66
+ // ---------------------------------------------------------------------
43
67
 
44
68
  psm.migration = {
45
- revision: `${ moment().format( 'YYYYMMDDHHmmss' ) } - ${psm.psm.migration}`,
46
- instante: moment().format( 'YYYYMMDDHHmmss' ),
47
- preview: preview?.migration.revision,
48
- label: opts.label
49
- }
50
- let label = "";
51
- if( !!opts.label ) label = ` - ${sanitizeLabel( opts.label )}`;
52
- const nextRev = Path.join( home, `psm/revisions/schema/${psm.migration.instante}${label}`);
69
+ revision: `${moment().format('YYYYMMDDHHmmss')} - ${psm.psm.migration}`,
70
+ instante: moment().format('YYYYMMDDHHmmss'),
71
+ preview: preview?.migration?.revision,
72
+ label: opts.label,
73
+ };
53
74
 
75
+ let label = "";
76
+ if (!!opts.label) label = ` - ${sanitizeLabel(opts.label)}`;
77
+ const nextRev = Path.join(home, `psm/revisions/schema/${psm.migration.instante}${label}`);
54
78
 
55
- if( !fs.existsSync( check) ) {
56
- throw new Error( "Migrate error: next/migration.next.check.sql file not found!" );
79
+ if (!fs.existsSync(check)) {
80
+ throw new Error("Migrate error: next/migration.next.check.sql file not found!");
57
81
  }
58
- if( !fs.existsSync( next) ) {
59
- throw new Error( "Migrate error: next/migration.next.sql file not found!" );
82
+ if (!fs.existsSync(next)) {
83
+ throw new Error("Migrate error: next/migration.next.sql file not found!");
60
84
  }
61
85
 
62
86
  const migrator = driver.migrator({
63
- url: process.env[ psm.psm.url ],
64
- migrate: fs.readFileSync( next ).toString(),
65
- check: fs.readFileSync( check ).toString(),
66
- core: fs.readFileSync( psm_sql ).toString(),
87
+ url: process.env[psm.psm.url],
88
+ migrate: fs.readFileSync(next).toString(),
89
+ check: fs.readFileSync(check).toString(),
90
+ core: fs.readFileSync(psm_sql).toString(),
67
91
  });
68
92
 
69
93
  let result = await migrator.core();
70
- if( !result.success ) {
71
- console.error( result.error );
72
- result.messages.forEach( error => {
73
- console.error( error );
94
+ if (!result.success) {
95
+ console.error(result.error);
96
+ result.messages.forEach(error => {
97
+ console.error(error);
74
98
  });
75
- throw new Error( "Migrate error: Core failed!" );
99
+ throw new Error("Migrate error: Core failed!");
76
100
  }
77
101
 
78
102
  const fetchResponse = await fetch({
79
103
  psm: psm,
80
104
  driver: driver,
81
- home: home
105
+ home: home,
82
106
  });
83
107
 
84
- if( fetchResponse.error ) {
108
+ if (fetchResponse.error) {
85
109
  throw fetchResponse.error;
86
110
  }
87
111
 
88
- const noPulled = fetchResponse.revs.filter( n=> !n.pulled );
112
+ const noPulled = fetchResponse.revs.filter(n => !n.pulled);
89
113
 
90
-
91
- if( noPulled.length ) {
92
- throw new Error( `Commit not pulled already exists! Please run ${chalk.bold("psm deploy")} first!` );
114
+ if (noPulled.length) {
115
+ throw new Error(`Commit not pulled already exists! Please run ${chalk.bold("psm deploy")} first!`);
93
116
  }
94
117
 
95
118
  result = await migrator.test();
96
- if( !result.success ) {
97
- console.error( result.error );
98
- result.messages.forEach( error => {
99
- console.error( error );
119
+ if (!result.success) {
120
+ console.error(result.error);
121
+ result.messages.forEach(error => {
122
+ console.error(error);
100
123
  });
101
- throw new Error( "Migrate error: Check shadow failed!" );
124
+ throw new Error("Migrate error: Check shadow failed!");
102
125
  }
103
126
 
104
127
  const dump = await migrator.dump();
105
- if( dump.error ){
128
+ if (dump.error) {
106
129
  throw dump.error;
107
130
  }
108
131
 
109
- fs.mkdirSync( nextRev, { recursive: true });
110
- const custom = CreateCustom({
111
- home: home,
112
- nextRev: nextRev,
113
- migrator: migrator
114
- }, "functions", "triggers", "views" );
132
+ fs.mkdirSync(nextRev, { recursive: true });
133
+ const custom = CreateCustom(
134
+ {
135
+ home: home,
136
+ nextRev: nextRev,
137
+ migrator: migrator,
138
+ },
139
+ "functions",
140
+ "triggers",
141
+ "views"
142
+ );
115
143
 
116
- result = await migrator.migrate( custom ).catch( reason => {
117
- return { error: reason, success: false };
144
+ result = await migrator.migrate(custom).catch(reason => {
145
+ return { error: reason, success: false };
118
146
  });
119
147
 
120
- if( !result.success ) {
121
- console.error( result.error );
122
- result.messages.forEach( error => {
123
- console.error( error );
148
+ if (!result.success) {
149
+ console.error(result.error);
150
+ result.messages.forEach(error => {
151
+ console.error(error);
124
152
  });
125
- if( fs.existsSync( nextRev ) ) {
126
- fs.rmdirSync( nextRev );
153
+ if (fs.existsSync(nextRev)) {
154
+ fs.rmdirSync(nextRev);
127
155
  }
128
- throw new Error( `Migrate error: Commit migration failed! ${home}` );
156
+ throw new Error(`Migrate error: Commit migration failed! ${home}`);
129
157
  }
130
158
 
131
159
  custom.createFiles();
132
160
 
133
- fs.writeFileSync( Path.join( nextRev, "migration.sql" ), migrator.migrateRaw( custom ) );
134
- fs.writeFileSync( Path.join( nextRev, "psm.yml" ), yaml.stringify( psm ) );
135
- fs.writeFileSync( Path.join(nextRev, "backup.sql"), dump.output );
161
+ fs.writeFileSync(Path.join(nextRev, "migration.sql"), migrator.migrateRaw(custom));
162
+ fs.writeFileSync(Path.join(nextRev, "psm.yml"), yaml.stringify(psm));
163
+ fs.writeFileSync(Path.join(nextRev, "backup.sql"), dump.output);
136
164
 
137
- fs.unlinkSync( check );
165
+ fs.unlinkSync(check);
138
166
 
139
- const archiveName = Path.join(home || process.cwd(), `psm/revisions/schema/${psm.migration.instante}${label}.tar.gz`);
167
+ const archiveName = Path.join(
168
+ home || process.cwd(),
169
+ `psm/revisions/schema/${psm.migration.instante}${label}.tar.gz`
170
+ );
140
171
 
141
172
  await tar.c(
142
173
  {
143
174
  gzip: {
144
- level: 9
175
+ level: 9,
145
176
  },
146
177
  file: archiveName,
147
- cwd: Path.dirname(nextRev)
178
+ cwd: Path.dirname(nextRev),
148
179
  },
149
180
  [Path.basename(nextRev)]
150
181
  );
@@ -152,8 +183,7 @@ export async function commit(opts:MigrateOptions ) {
152
183
  console.log(chalk.green(`✔ Migration compactada: ${archiveName}`));
153
184
 
154
185
  fs.rmSync(nextRev, { recursive: true, force: true });
155
- fs.unlinkSync( next );
156
-
157
- gitAddPath(home || process.cwd(), archiveName );
158
- }
186
+ fs.unlinkSync(next);
159
187
 
188
+ gitAddPath(home || process.cwd(), archiveName);
189
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["deploy.ts"],"names":[],"mappings":"AAOA,OAAO,EAAC,aAAa,EAAC,MAAM,YAAY,CAAC;AAEzC,OAAO,EAAC,SAAS,EAAC,MAAM,WAAW,CAAC;AAGpC,MAAM,WAAW,aAAa;IAC1B,MAAM,CAAC,EAAC,MAAM,CAAA;IACd,QAAQ,CAAC,EAAC,MAAM,CAAA;IAChB,KAAK,CAAC,EAAC,MAAM,CAAA;IACb,kBAAkB,EAAC,MAAM,CAAA;CAC5B;AAID,wBAAsB,MAAM,CAAE,IAAI,EAAE,aAAa,iBAoEhD;AAED,MAAM,WAAW,YAAY;IACzB,IAAI,EAAC,MAAM,CAAC;IACZ,MAAM,EAAC,SAAS,CAAC;IACjB,GAAG,EAAC,aAAa,CAAA;CACpB;AACD,wBAAsB,KAAK,CAAC,IAAI,EAAE,YAAY;;cAKjC,MAAM;aACN,aAAa;iBACT,MAAM;iBACN,MAAM;gBACP,OAAO;eACR,MAAM;iBACJ,MAAM,EAAE;cACX,IAAI,GAAG,IAAI;;;;;;cAPZ,MAAM;aACN,aAAa;iBACT,MAAM;iBACN,MAAM;gBACP,OAAO;eACR,MAAM;iBACJ,MAAM,EAAE;cACX,IAAI,GAAG,IAAI;;;;;;cAPZ,MAAM;aACN,aAAa;iBACT,MAAM;iBACN,MAAM;gBACP,OAAO;eACR,MAAM;iBACJ,MAAM,EAAE;cACX,IAAI,GAAG,IAAI;;;;GAuFxB"}
1
+ {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["deploy.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGtC,MAAM,WAAW,aAAa;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,MAAM,CAAC;CAC9B;AAID,wBAAsB,MAAM,CAAC,IAAI,EAAE,aAAa,iBA0E/C;AAED,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,CAAC;IAClB,GAAG,EAAE,aAAa,CAAC;CACtB;AAED,wBAAsB,KAAK,CAAC,IAAI,EAAE,YAAY;;cAKhC,MAAM;aACP,aAAa;iBACT,MAAM;iBACN,MAAM;gBACP,OAAO;eACR,MAAM;iBACJ,MAAM,EAAE;cACX,IAAI,GAAG,IAAI;;;;;;cAPX,MAAM;aACP,aAAa;iBACT,MAAM;iBACN,MAAM;gBACP,OAAO;eACR,MAAM;iBACJ,MAAM,EAAE;cACX,IAAI,GAAG,IAAI;;;;;;cAPX,MAAM;aACP,aAAa;iBACT,MAAM;iBACN,MAAM;gBACP,OAAO;eACR,MAAM;iBACJ,MAAM,EAAE;cACX,IAAI,GAAG,IAAI;;;;GAuFxB"}
@@ -68,7 +68,7 @@ function deploy(opts) {
68
68
  const pullResponse = yield fetch({
69
69
  home: home,
70
70
  driver: driver,
71
- psm: psm
71
+ psm: psm,
72
72
  });
73
73
  if (pullResponse.error) {
74
74
  pullResponse.clean();
@@ -78,7 +78,9 @@ function deploy(opts) {
78
78
  pullResponse.clean();
79
79
  throw new Error(`No migrate commited! Use ${chalk_1.default.bold("psm migrate commit")} first!`);
80
80
  }
81
- const revs = pullResponse.revs;
81
+ let revs = pullResponse.revs;
82
+ // Ordena as revisões por instante (cronologicamente)
83
+ revs.sort((a, b) => a.psm.migration.instante.localeCompare(b.psm.migration.instante));
82
84
  for (let i = 0; i < revs.length; i++) {
83
85
  let next = revs[i];
84
86
  const migrator = driver.migrator({
@@ -88,9 +90,11 @@ function deploy(opts) {
88
90
  core: "",
89
91
  });
90
92
  next.message.forEach(console.log);
93
+ // CORREÇÃO: se já foi migrada, apenas continua para a próxima
91
94
  if (next.pulled)
92
- return;
93
- else if (i === 0 && !!next.backup) {
95
+ continue;
96
+ // Restaura backup apenas na primeira revisão não aplicada (se houver)
97
+ if (i === 0 && !!next.backup) {
94
98
  yield migrator.restore(next.backup);
95
99
  }
96
100
  const result = yield migrator.migrate();
@@ -138,7 +142,7 @@ function fetch(opts) {
138
142
  message: [],
139
143
  date: null,
140
144
  backup: backup,
141
- temp: tempDir
145
+ temp: tempDir,
142
146
  };
143
147
  if (fs.existsSync(backup))
144
148
  rev.backup = backup;
@@ -154,7 +158,7 @@ function fetch(opts) {
154
158
  return {
155
159
  revs,
156
160
  error: new Error(`MISSING PREVIEW migration for...\n${missed.join(", ")}`),
157
- clean() { }
161
+ clean() { },
158
162
  };
159
163
  }
160
164
  // marcar revisões já migradas
@@ -183,7 +187,7 @@ function fetch(opts) {
183
187
  revs.forEach(value => {
184
188
  fs.rmSync(value.temp, { recursive: true, force: true });
185
189
  });
186
- }
190
+ },
187
191
  };
188
192
  });
189
193
  }
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.js","sourceRoot":"","sources":["deploy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deploy.js","sourceRoot":"","sources":["deploy.ts"],"names":[],"mappings":"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"}
@@ -5,58 +5,61 @@ import * as os from "node:os";
5
5
  import * as fs from "node:fs";
6
6
  import * as yaml from "yaml";
7
7
  import * as Path from "node:path";
8
- import {PSMConfigFile} from "../configs";
8
+ import { PSMConfigFile } from "../configs";
9
9
  import chalk from "chalk";
10
- import {PSMDriver} from "../driver";
11
- import {psmLockup} from "./common";
10
+ import { PSMDriver } from "../driver";
11
+ import { psmLockup } from "./common";
12
12
 
13
13
  export interface DeployOptions {
14
- schema?:string
15
- generate?:string
16
- label?:string
17
- "generate-command":string
14
+ schema?: string;
15
+ generate?: string;
16
+ label?: string;
17
+ "generate-command": string;
18
18
  }
19
19
 
20
- const TAG = "PSM DEPLOY >"
20
+ const TAG = "PSM DEPLOY >";
21
21
 
22
- export async function deploy( opts: DeployOptions) {
22
+ export async function deploy(opts: DeployOptions) {
23
23
  require('dotenv').config();
24
24
 
25
- const { psm, psm_sql, driver, home} = await psmLockup({ schema: opts.schema });
25
+ const { psm, psm_sql, driver, home } = await psmLockup({ schema: opts.schema });
26
26
 
27
27
  let migrator = driver.migrator({
28
28
  url: process.env[psm.psm.url],
29
29
  migrate: "",
30
30
  check: "",
31
- core: fs.readFileSync( psm_sql ).toString(),
31
+ core: fs.readFileSync(psm_sql).toString(),
32
32
  });
33
33
 
34
34
  let result = await migrator.core();
35
- if( !result.success ) {
36
- console.error( result.error );
37
- result.messages.forEach( error => {
38
- console.error( error );
35
+ if (!result.success) {
36
+ console.error(result.error);
37
+ result.messages.forEach(error => {
38
+ console.error(error);
39
39
  });
40
- throw new Error( "Migrate error: Core failed!" );
40
+ throw new Error("Migrate error: Core failed!");
41
41
  }
42
42
 
43
43
  const pullResponse = await fetch({
44
44
  home: home,
45
45
  driver: driver,
46
- psm: psm
46
+ psm: psm,
47
47
  });
48
48
 
49
- if( pullResponse.error ){
49
+ if (pullResponse.error) {
50
50
  pullResponse.clean();
51
- throw pullResponse.error;
51
+ throw pullResponse.error;
52
52
  }
53
53
 
54
- if( !pullResponse.revs?.length ) {
54
+ if (!pullResponse.revs?.length) {
55
55
  pullResponse.clean();
56
- throw new Error(`No migrate commited! Use ${ chalk.bold("psm migrate commit")} first!`);
56
+ throw new Error(`No migrate commited! Use ${chalk.bold("psm migrate commit")} first!`);
57
57
  }
58
58
 
59
- const revs = pullResponse.revs;
59
+ let revs = pullResponse.revs;
60
+
61
+ // Ordena as revisões por instante (cronologicamente)
62
+ revs.sort((a, b) => a.psm.migration.instante.localeCompare(b.psm.migration.instante));
60
63
 
61
64
  for (let i = 0; i < revs.length; i++) {
62
65
  let next = revs[i];
@@ -66,40 +69,44 @@ export async function deploy( opts: DeployOptions) {
66
69
  check: "",
67
70
  core: "",
68
71
  });
69
- next.message.forEach( console.log );
72
+ next.message.forEach(console.log);
73
+
74
+ // CORREÇÃO: se já foi migrada, apenas continua para a próxima
75
+ if (next.pulled) continue;
70
76
 
71
- if( next.pulled ) return;
72
- else if( i === 0 && !!next.backup ) {
73
- await migrator.restore( next.backup );
77
+ // Restaura backup apenas na primeira revisão não aplicada (se houver)
78
+ if (i === 0 && !!next.backup) {
79
+ await migrator.restore(next.backup);
74
80
  }
75
81
 
76
82
  const result = await migrator.migrate();
77
83
 
78
- if( !result.success ) {
79
- console.error( result.error );
80
- result.messages.forEach( error => {
81
- console.error( error );
84
+ if (!result.success) {
85
+ console.error(result.error);
86
+ result.messages.forEach(error => {
87
+ console.error(error);
82
88
  });
83
- console.error( `${next.label} is migrated at ${next.date} - ${chalk.redBright.bold( "FAILED")}` );
84
- throw new Error( "Migrate error: Push migration failed!" );
89
+ console.error(`${next.label} is migrated at ${next.date} - ${chalk.redBright.bold("FAILED")}`);
90
+ throw new Error("Migrate error: Push migration failed!");
85
91
  }
86
- console.log( `${next.label} is migrated at ${next.date} - ${chalk.greenBright.bold( "SUCCESS")}` );
92
+ console.log(`${next.label} is migrated at ${next.date} - ${chalk.greenBright.bold("SUCCESS")}`);
87
93
  }
88
94
 
89
95
  pullResponse.clean();
90
96
  }
91
97
 
92
98
  export interface FetchOptions {
93
- home:string,
94
- driver:PSMDriver,
95
- psm:PSMConfigFile
99
+ home: string;
100
+ driver: PSMDriver;
101
+ psm: PSMConfigFile;
96
102
  }
103
+
97
104
  export async function fetch(opts: FetchOptions) {
98
105
  const revisionsDir = Path.join(opts.home, "psm/revisions/schema");
99
106
  const revFiles = fs.readdirSync(revisionsDir).filter(n => n.endsWith(".tar.gz"));
100
107
 
101
108
  const revs: Array<{
102
- temp:string
109
+ temp: string;
103
110
  psm: PSMConfigFile;
104
111
  migrate: string;
105
112
  backup?: string;
@@ -132,7 +139,7 @@ export async function fetch(opts: FetchOptions) {
132
139
  const psm = yaml.parse(fs.readFileSync(psmPath, "utf-8")) as PSMConfigFile;
133
140
  const migrate = fs.readFileSync(migrationPath, "utf-8");
134
141
 
135
- const rev:typeof revs[number] = {
142
+ const rev: typeof revs[number] = {
136
143
  psm,
137
144
  migrate,
138
145
  pulled: false,
@@ -140,10 +147,10 @@ export async function fetch(opts: FetchOptions) {
140
147
  message: [],
141
148
  date: null,
142
149
  backup: backup,
143
- temp: tempDir
144
- }
150
+ temp: tempDir,
151
+ };
145
152
 
146
- if( fs.existsSync( backup) ) rev.backup = backup;
153
+ if (fs.existsSync(backup)) rev.backup = backup;
147
154
  revs.push(rev);
148
155
  }
149
156
 
@@ -158,7 +165,7 @@ export async function fetch(opts: FetchOptions) {
158
165
  return {
159
166
  revs,
160
167
  error: new Error(`MISSING PREVIEW migration for...\n${missed.join(", ")}`),
161
- clean(){}
168
+ clean() {},
162
169
  };
163
170
  }
164
171
 
@@ -187,10 +194,10 @@ export async function fetch(opts: FetchOptions) {
187
194
 
188
195
  return {
189
196
  revs,
190
- clean(){
191
- revs.forEach( value => {
197
+ clean() {
198
+ revs.forEach(value => {
192
199
  fs.rmSync(value.temp, { recursive: true, force: true });
193
- })
194
- }
200
+ });
201
+ },
195
202
  };
196
203
  }