@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.
@@ -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 export`.
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` e retornávamos
55
- * o STDOUT — mas `generate` NÃO emite SQL no stdout: escreve o `.sql` no
56
- * diretório `out` e imprime apenas BANNER/STATUS ("Reading config file ...",
57
- * "N tables", ...). Esse banner virava o "SQL candidato" e quebrava o rehearse
58
- * (o psql interpretava "No config path ..." como statement → syntax error) e,
59
- * com `--skip-rehearse`, mandaria o banner como corpo da migração pro Core.
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
- * `drizzle-kit export` emite o DDL PURO e AUTO-CONTIDO no STDOUT (sem banner,
62
- * sem conexão ao banco — só lê o schema), que é exatamente o que o rehearse
63
- * (Postgres fresco/efêmero) e o classify esperam. Verificado contra
64
- * drizzle-kit 0.31.x. `export` lê a `drizzle.config.ts` do produto (schema +
65
- * dialect); não precisa de `dbCredentials`.
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
- function generateSql(schemaPath) {
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', ['drizzle-kit', 'export'], {
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 export: ${err.message}`));
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 export falhou (exit ${code ?? '?'})` +
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
- resolve(stdout);
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":"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"}
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neetru/cli",
3
- "version": "2.26.2",
3
+ "version": "2.26.4",
4
4
  "type": "module",
5
5
  "description": "Neetru Developer Kit — scaffold, AI assistant, publish, build e deploy de produtos SaaS Neetru via Core (VM-based agents)",
6
6
  "keywords": [