@neetru/cli 2.26.2 → 2.26.4
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/CHANGELOG.md +58 -0
- package/README.md +14 -1
- package/dist/commands/db.d.ts +7 -0
- package/dist/commands/db.js +15 -1
- package/dist/commands/db.js.map +1 -1
- package/dist/commands/deploy.d.ts +22 -0
- package/dist/commands/deploy.js +7 -3
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/dev.js +7 -1
- package/dist/commands/dev.js.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/db-pipeline/build-deps.d.ts +2 -1
- package/dist/lib/db-pipeline/build-deps.js +91 -24
- package/dist/lib/db-pipeline/build-deps.js.map +1 -1
- package/dist/lib/db-pipeline/rehearse.js +12 -0
- package/dist/lib/db-pipeline/rehearse.js.map +1 -1
- package/package.json +1 -1
|
@@ -20,6 +20,8 @@
|
|
|
20
20
|
* `rehearseInContainer` nos testes).
|
|
21
21
|
*/
|
|
22
22
|
import * as fs from 'node:fs';
|
|
23
|
+
import * as os from 'node:os';
|
|
24
|
+
import * as path from 'node:path';
|
|
23
25
|
import { spawn } from 'node:child_process';
|
|
24
26
|
import { classifyMigration } from '@neetru/db-classifier';
|
|
25
27
|
import { apiRequest } from '../api-client.js';
|
|
@@ -49,26 +51,59 @@ function readSchemaFile(path) {
|
|
|
49
51
|
return fs.readFileSync(path, 'utf8');
|
|
50
52
|
}
|
|
51
53
|
/**
|
|
52
|
-
* Obtém o DDL SQL do schema via `drizzle-kit
|
|
54
|
+
* Obtém o DDL SQL do schema via `drizzle-kit generate --out <tmp>`.
|
|
53
55
|
*
|
|
54
|
-
* BUG FIX (bug_c7842bbe): antes rodávamos `drizzle-kit generate`
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
*
|
|
56
|
+
* BUG FIX (bug_c7842bbe, HISTÓRICO): antes rodávamos `drizzle-kit generate`
|
|
57
|
+
* apontando pro `out` REAL do produto e líamos o STDOUT — mas `generate` NÃO
|
|
58
|
+
* emite SQL no stdout, só BANNER/STATUS. Isso virou "SQL candidato" e quebrava
|
|
59
|
+
* o rehearse. O fix da época trocou pra `drizzle-kit export` (DDL puro no
|
|
60
|
+
* stdout) — só que `export` NÃO aplica os guards de segurança que `generate`
|
|
61
|
+
* inclui por padrão (ex.: `CREATE TYPE` vira `DO $$ BEGIN CREATE TYPE ...
|
|
62
|
+
* EXCEPTION WHEN duplicate_object THEN null; END $$;` só em `generate`).
|
|
63
|
+
* Resultado (bug_pdv_rehearse_2026-07-27): qualquer produto com enum no
|
|
64
|
+
* schema tinha `CREATE TYPE` puro reemitido a cada apply, colidindo com
|
|
65
|
+
* `already exists` assim que o tipo existisse por qualquer via (ex.:
|
|
66
|
+
* recuperação de incidente fora do pipeline rastreado).
|
|
60
67
|
*
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
*
|
|
68
|
+
* FIX ATUAL: mantém `generate` (ganha os guards de graça — e qualquer
|
|
69
|
+
* outro idiom de segurança que o drizzle-kit adicionar no futuro), mas
|
|
70
|
+
* aponta `--out` pra um diretório TEMPORÁRIO vazio a cada chamada — resolve
|
|
71
|
+
* o bug_c7842bbe original (nunca lemos stdout; lemos o `.sql` do disco) sem
|
|
72
|
+
* reintroduzir o gap de segurança do `export`. Diretório sempre vazio no
|
|
73
|
+
* início → `generate` não tem histórico prévio pra diffar contra → emite o
|
|
74
|
+
* schema INTEIRO (mesma semântica do `export` anterior), só que com os
|
|
75
|
+
* guards. Limpo no `finally` — nunca deixa lixo em `os.tmpdir()`.
|
|
76
|
+
*
|
|
77
|
+
* BUG FIX (bug_pdv_generate_dialect_2026-07-28): passar `--schema`/`--out`
|
|
78
|
+
* como flags de CLI faz o `drizzle-kit` tomar o caminho "params" da própria
|
|
79
|
+
* config (`prepareGenerateConfig`, `bin.cjs`) — que usa `options` DIRETO e
|
|
80
|
+
* NUNCA lê `drizzle.config.ts` do produto (o `from === "config"` só é
|
|
81
|
+
* verdadeiro quando NENHuma dessas flags é passada, daí o discovery do
|
|
82
|
+
* arquivo). Sem `drizzle.config.ts`, `dialect` fica `undefined` e o
|
|
83
|
+
* `drizzle-kit` aborta com "Please provide required params: [x] dialect:
|
|
84
|
+
* undefined" — quebrando a fase `generate` ANTES até do rehearse. `--dialect`
|
|
85
|
+
* precisa ser passado explicitamente; vem do `engine` que o pipeline já
|
|
86
|
+
* resolve (`rehearseEngine` em `commands/db.ts`) e usa pro Postgres/MySQL
|
|
87
|
+
* efêmero — mesma fonte, sem precisar ler nada novo do produto.
|
|
66
88
|
*/
|
|
67
|
-
|
|
89
|
+
const ENGINE_TO_DIALECT = {
|
|
90
|
+
postgres: 'postgresql',
|
|
91
|
+
mysql: 'mysql',
|
|
92
|
+
};
|
|
93
|
+
export function generateSql(schemaPath, engine = 'postgres') {
|
|
94
|
+
const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'neetru-drizzle-'));
|
|
68
95
|
return new Promise((resolve, reject) => {
|
|
69
|
-
const child = spawn('npx', [
|
|
96
|
+
const child = spawn('npx', [
|
|
97
|
+
'drizzle-kit',
|
|
98
|
+
'generate',
|
|
99
|
+
'--schema',
|
|
100
|
+
schemaPath,
|
|
101
|
+
'--out',
|
|
102
|
+
tmpDir,
|
|
103
|
+
'--dialect',
|
|
104
|
+
ENGINE_TO_DIALECT[engine],
|
|
105
|
+
], {
|
|
70
106
|
cwd: process.cwd(),
|
|
71
|
-
env: { ...process.env, NEETRU_DB_SCHEMA: schemaPath },
|
|
72
107
|
shell: process.platform === 'win32',
|
|
73
108
|
});
|
|
74
109
|
let stdout = '';
|
|
@@ -80,16 +115,41 @@ function generateSql(schemaPath) {
|
|
|
80
115
|
stderr += String(chunk);
|
|
81
116
|
});
|
|
82
117
|
child.on('error', (err) => {
|
|
83
|
-
reject(new Error(`não foi possível executar drizzle-kit
|
|
118
|
+
reject(new Error(`não foi possível executar drizzle-kit generate: ${err.message}`));
|
|
84
119
|
});
|
|
85
120
|
child.on('exit', (code) => {
|
|
86
121
|
if (code !== 0) {
|
|
87
|
-
reject(new Error(`drizzle-kit
|
|
88
|
-
`${stderr.trim() ? `: ${stderr.trim()}` : '.'}`));
|
|
122
|
+
reject(new Error(`drizzle-kit generate falhou (exit ${code ?? '?'})` +
|
|
123
|
+
`${stderr.trim() ? `: ${stderr.trim()}` : ''}${stdout.trim() ? `\n${stdout.trim()}` : ''}`));
|
|
89
124
|
return;
|
|
90
125
|
}
|
|
91
|
-
|
|
126
|
+
try {
|
|
127
|
+
const sqlFiles = fs
|
|
128
|
+
.readdirSync(tmpDir)
|
|
129
|
+
.filter((f) => f.endsWith('.sql'))
|
|
130
|
+
.sort();
|
|
131
|
+
if (sqlFiles.length === 0) {
|
|
132
|
+
// Sem mudanças no schema desde o baseline vazio é impossível aqui
|
|
133
|
+
// (o diretório sempre começa vazio) — se não gerou .sql, algo no
|
|
134
|
+
// drizzle-kit mudou de comportamento; falha alto-e-claro em vez de
|
|
135
|
+
// silenciosamente mandar SQL vazio pro rehearse/Core.
|
|
136
|
+
reject(new Error(`drizzle-kit generate não produziu nenhum .sql em ${tmpDir} ` +
|
|
137
|
+
`(stdout: ${stdout.trim() || '(vazio)'}).`));
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
// Sempre 1 arquivo (out sempre começa vazio) — concatena por segurança
|
|
141
|
+
// caso o drizzle-kit algum dia emita mais de um.
|
|
142
|
+
const sql = sqlFiles
|
|
143
|
+
.map((f) => fs.readFileSync(path.join(tmpDir, f), 'utf8'))
|
|
144
|
+
.join('\n');
|
|
145
|
+
resolve(sql);
|
|
146
|
+
}
|
|
147
|
+
catch (err) {
|
|
148
|
+
reject(new Error(`falha lendo o .sql gerado em ${tmpDir}: ${err.message}`));
|
|
149
|
+
}
|
|
92
150
|
});
|
|
151
|
+
}).finally(() => {
|
|
152
|
+
fs.rmSync(tmpDir, { recursive: true, force: true });
|
|
93
153
|
});
|
|
94
154
|
}
|
|
95
155
|
/**
|
|
@@ -109,9 +169,16 @@ function generateSql(schemaPath) {
|
|
|
109
169
|
* `postgres:16-alpine` + psql; MySQL sobe `mysql:8` + cliente mysql. Antes era
|
|
110
170
|
* sempre Postgres, então a DDL MySQL (drizzle dialect mysql) quebrava no parser
|
|
111
171
|
* do Postgres e bloqueava o `neetru db apply` de engines MySQL.
|
|
172
|
+
*
|
|
173
|
+
* `skipRehearse` (bug_pdv_rehearse_2026-07-27): pula o container Docker por
|
|
174
|
+
* completo — `buildRehearseInContainer` já suportava a opção, só nunca tinha
|
|
175
|
+
* sido exposta por um caller real (nem CLI, nem `buildPipelineDeps`). Override
|
|
176
|
+
* operacional explícito; DEVE ser logado pelo caller (`db.ts` — ver
|
|
177
|
+
* `--skip-rehearse`) antes de chegar aqui. Não protege contra SQL quebrado —
|
|
178
|
+
* só pula o TESTE local; o Core/agente ainda roda a mesma DDL na VM real.
|
|
112
179
|
*/
|
|
113
|
-
function makeRehearse(engine) {
|
|
114
|
-
return buildRehearseInContainer(buildDockerExecFn(), { engine });
|
|
180
|
+
function makeRehearse(engine, skipRehearse) {
|
|
181
|
+
return buildRehearseInContainer(buildDockerExecFn(), { engine, skipRehearse });
|
|
115
182
|
}
|
|
116
183
|
/**
|
|
117
184
|
* Classifica o `.sql` em aditiva/destrutiva via `@neetru/db-classifier`.
|
|
@@ -160,11 +227,11 @@ async function pushToCore(artifact) {
|
|
|
160
227
|
* `overrides` permite sobrescrever deps individuais (ex.: `pushToCore` em
|
|
161
228
|
* `--dry-run`, ou `onPhase` para ligar num spinner do `ora`).
|
|
162
229
|
*/
|
|
163
|
-
export function buildPipelineDeps(overrides = {}, engine = 'postgres') {
|
|
230
|
+
export function buildPipelineDeps(overrides = {}, engine = 'postgres', skipRehearse = false) {
|
|
164
231
|
return {
|
|
165
232
|
readSchemaFile,
|
|
166
|
-
generateSql,
|
|
167
|
-
rehearseInContainer: makeRehearse(engine),
|
|
233
|
+
generateSql: (schemaPath) => generateSql(schemaPath, engine),
|
|
234
|
+
rehearseInContainer: makeRehearse(engine, skipRehearse),
|
|
168
235
|
classify,
|
|
169
236
|
pushToCore,
|
|
170
237
|
...overrides,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-deps.js","sourceRoot":"","sources":["../../../src/lib/db-pipeline/build-deps.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EACL,wBAAwB,EACxB,iBAAiB,GAElB,MAAM,eAAe,CAAC;AAQvB;;;;;;;;;;;;;GAaG;AACH,MAAM,sBAAsB,GAAG,iBAE2D,CAAC;AAC3F,KAAK,sBAAsB,CAAC;AAE5B;;;;GAIG;AACH,SAAS,cAAc,CAAC,IAAY;IAClC,OAAO,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACvC,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"build-deps.js","sourceRoot":"","sources":["../../../src/lib/db-pipeline/build-deps.ts"],"names":[],"mappings":"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"}
|
|
@@ -132,6 +132,16 @@ const APPLY_RETRY_DELAY_MS = 1000;
|
|
|
132
132
|
* como o servidor real. Uma conexão (psql/mysql) que cai nessa janela vê
|
|
133
133
|
* "the database system is shutting down" / "starting up" / "connection refused".
|
|
134
134
|
* NÃO é erro de SQL: o apply deve re-tentar — o servidor real sobe em ~1-2s.
|
|
135
|
+
*
|
|
136
|
+
* bug_pdv_rehearse_2026-07-27: mesma janela de corrida cobre também o script
|
|
137
|
+
* de bootstrap que cria o banco `POSTGRES_DB`/`MYSQL_DATABASE` — o
|
|
138
|
+
* servidor TEMPORÁRIO já aceita conexões (`pg_isready`/`SELECT 1` passam),
|
|
139
|
+
* mas o script `CREATE DATABASE neetru_rehearse` ainda não rodou. Uma conexão
|
|
140
|
+
* nessa janela vê `FATAL: database "neetru_rehearse" does not exist` (Postgres)
|
|
141
|
+
* ou `Unknown database 'neetru_rehearse'` (MySQL). `FATAL` (nível de conexão,
|
|
142
|
+
* antes de qualquer SQL rodar) é o que distingue isso de um erro real de SQL
|
|
143
|
+
* como `ERROR: relation "x" does not exist` — Postgres nunca emite `FATAL`
|
|
144
|
+
* pra erro de statement dentro de uma sessão já conectada.
|
|
135
145
|
*/
|
|
136
146
|
function isTransientDbError(msg) {
|
|
137
147
|
const m = (msg || '').toLowerCase();
|
|
@@ -142,6 +152,8 @@ function isTransientDbError(msg) {
|
|
|
142
152
|
m.includes('connection refused') ||
|
|
143
153
|
m.includes('could not connect to server') ||
|
|
144
154
|
m.includes('server closed the connection unexpectedly') ||
|
|
155
|
+
(m.includes('fatal') && m.includes('does not exist')) || // postgres: DB de bootstrap ainda não criado
|
|
156
|
+
m.includes('unknown database') || // mysql: idem
|
|
145
157
|
m.includes("can't connect to") || // mysql
|
|
146
158
|
m.includes('lost connection to') || // mysql
|
|
147
159
|
m.includes('mysql server has gone away'));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rehearse.js","sourceRoot":"","sources":["../../../src/lib/db-pipeline/rehearse.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"rehearse.js","sourceRoot":"","sources":["../../../src/lib/db-pipeline/rehearse.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED