@darkstar-cli/cli 0.0.20 → 0.0.21
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db-migrate.d.ts","sourceRoot":"","sources":["../../../src/commands/forge/db-migrate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"db-migrate.d.ts","sourceRoot":"","sources":["../../../src/commands/forge/db-migrate.ts"],"names":[],"mappings":"AAyDA,wBAAsB,SAAS,kBA0H9B"}
|
|
@@ -52,8 +52,13 @@ async function acquireLock(driver, db) {
|
|
|
52
52
|
return { locked: rows[0]?.result === true };
|
|
53
53
|
}
|
|
54
54
|
else {
|
|
55
|
+
const dbName = process.env.DB_DATABASE;
|
|
56
|
+
if (!dbName) {
|
|
57
|
+
error('DB_DATABASE não está definido no .env — não é possível adquirir o lock.');
|
|
58
|
+
return { locked: false };
|
|
59
|
+
}
|
|
55
60
|
const conn = await driver.getConnection();
|
|
56
|
-
const [rows] = await conn.query(`SELECT GET_LOCK(
|
|
61
|
+
const [rows] = await conn.query(`SELECT GET_LOCK(?, 0) as result`, [`darkstar_migrate_${dbName}`]);
|
|
57
62
|
if (rows[0]?.result !== 1) {
|
|
58
63
|
conn.release();
|
|
59
64
|
return { locked: false };
|
|
@@ -61,7 +66,8 @@ async function acquireLock(driver, db) {
|
|
|
61
66
|
return { locked: true, conn };
|
|
62
67
|
}
|
|
63
68
|
}
|
|
64
|
-
catch {
|
|
69
|
+
catch (err) {
|
|
70
|
+
error(`Falha ao adquirir lock: ${err.message}`);
|
|
65
71
|
return { locked: false };
|
|
66
72
|
}
|
|
67
73
|
}
|
|
@@ -71,11 +77,16 @@ async function releaseLock(driver, db, conn) {
|
|
|
71
77
|
await driver.query(`SELECT pg_advisory_unlock(123456789)`);
|
|
72
78
|
}
|
|
73
79
|
else if (conn) {
|
|
74
|
-
|
|
80
|
+
const dbName = process.env.DB_DATABASE;
|
|
81
|
+
if (dbName) {
|
|
82
|
+
await conn.query(`SELECT RELEASE_LOCK(?)`, [`darkstar_migrate_${dbName}`]);
|
|
83
|
+
}
|
|
75
84
|
conn.release();
|
|
76
85
|
}
|
|
77
86
|
}
|
|
78
|
-
catch {
|
|
87
|
+
catch (err) {
|
|
88
|
+
warn(`Falha ao liberar lock: ${err.message}`);
|
|
89
|
+
}
|
|
79
90
|
}
|
|
80
91
|
async function dbMigrate() {
|
|
81
92
|
info('Rodando migrations...');
|
|
@@ -94,6 +105,15 @@ async function dbMigrate() {
|
|
|
94
105
|
await orm_1.Connection.disconnect();
|
|
95
106
|
process.exit(1);
|
|
96
107
|
}
|
|
108
|
+
// Garante que Ctrl+C / kill liberem o lock antes de sair
|
|
109
|
+
const cleanup = async (signal) => {
|
|
110
|
+
warn(`Recebido ${signal}, liberando lock e saindo...`);
|
|
111
|
+
await releaseLock(driver, db, conn);
|
|
112
|
+
await orm_1.Connection.disconnect();
|
|
113
|
+
process.exit(0);
|
|
114
|
+
};
|
|
115
|
+
process.on('SIGINT', () => { cleanup('SIGINT'); });
|
|
116
|
+
process.on('SIGTERM', () => { cleanup('SIGTERM'); });
|
|
97
117
|
try {
|
|
98
118
|
const createTableSQL = db === 'postgres'
|
|
99
119
|
? `CREATE TABLE IF NOT EXISTS darkstar_migrations (
|
|
@@ -133,8 +153,8 @@ async function dbMigrate() {
|
|
|
133
153
|
migration = await Promise.resolve(`${filePath}`).then(s => __importStar(require(s)));
|
|
134
154
|
}
|
|
135
155
|
catch (err) {
|
|
136
|
-
|
|
137
|
-
|
|
156
|
+
// throw em vez de process.exit pra o finally liberar o lock
|
|
157
|
+
throw new Error(`Falha ao carregar ${file}: ${err.message}`);
|
|
138
158
|
}
|
|
139
159
|
if (typeof migration.up !== 'function') {
|
|
140
160
|
warn(`${file} não exporta uma função up() — pulando.`);
|
|
@@ -157,14 +177,18 @@ async function dbMigrate() {
|
|
|
157
177
|
await driver.query('ROLLBACK');
|
|
158
178
|
}
|
|
159
179
|
catch { }
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
process.exit(1);
|
|
180
|
+
// throw em vez de process.exit pra o finally liberar o lock
|
|
181
|
+
throw new Error(`Falha em ${file}: ${err.message}`);
|
|
163
182
|
}
|
|
164
183
|
}
|
|
165
184
|
console.log('');
|
|
166
185
|
success(`${pending.length} migration(s) executada(s).`);
|
|
167
186
|
}
|
|
187
|
+
catch (err) {
|
|
188
|
+
error(err.message);
|
|
189
|
+
warn('Migration interrompida. Corrija o erro e rode db:migrate novamente.');
|
|
190
|
+
process.exitCode = 1;
|
|
191
|
+
}
|
|
168
192
|
finally {
|
|
169
193
|
await releaseLock(driver, db, conn);
|
|
170
194
|
await orm_1.Connection.disconnect();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db-migrate.js","sourceRoot":"","sources":["../../../src/commands/forge/db-migrate.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAAyB;AACzB,MAAY,EAAE,+BAAU;AACxB,MAAY,IAAI,iCAAY;AAC5B,2CAA8C;AAE9C,SAAS,OAAO,CAAC,GAAW,IAAI,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAA,CAAC,CAAC;AACxE,SAAS,IAAI,CAAC,GAAW,IAAO,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAA,CAAC,CAAC;AACvE,SAAS,KAAK,CAAC,GAAW,IAAM,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAA,CAAC,CAAC;AACtE,SAAS,IAAI,CAAC,GAAW,IAAO,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAA,CAAC,CAAC;AAEzE,KAAK,UAAU,WAAW,CAAC,MAAW,EAAE,EAAU;IAChD,IAAI,CAAC;QACH,IAAI,EAAE,KAAK,UAAU,EAAE,CAAC;YACtB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,CACjC,kDAAkD,CAChB,CAAA;YACpC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,EAAE,CAAA;QAC7C,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,aAAa,EAAE,CAAA;YACzC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAC7B,
|
|
1
|
+
{"version":3,"file":"db-migrate.js","sourceRoot":"","sources":["../../../src/commands/forge/db-migrate.ts"],"names":[],"mappings":"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"}
|