herdux-cli 0.5.0 → 0.7.0
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/README.md +114 -246
- package/README.pt-BR.md +118 -220
- package/dist/commands/clean.d.ts.map +1 -1
- package/dist/commands/clean.js +3 -1
- package/dist/commands/clean.js.map +1 -1
- package/dist/commands/create.d.ts.map +1 -1
- package/dist/commands/create.js +3 -1
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/docker.d.ts +3 -0
- package/dist/commands/docker.d.ts.map +1 -0
- package/dist/commands/docker.js +106 -0
- package/dist/commands/docker.js.map +1 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +2 -1
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/drop.d.ts.map +1 -1
- package/dist/commands/drop.js +3 -1
- package/dist/commands/drop.js.map +1 -1
- package/dist/commands/inspect.d.ts +3 -0
- package/dist/commands/inspect.d.ts.map +1 -0
- package/dist/commands/inspect.js +29 -0
- package/dist/commands/inspect.js.map +1 -0
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +3 -1
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/version.d.ts.map +1 -1
- package/dist/commands/version.js +26 -16
- package/dist/commands/version.js.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/infra/docker/docker.service.d.ts +14 -0
- package/dist/infra/docker/docker.service.d.ts.map +1 -0
- package/dist/infra/docker/docker.service.js +83 -0
- package/dist/infra/docker/docker.service.js.map +1 -0
- package/dist/infra/engines/inspect-backup.d.ts +13 -0
- package/dist/infra/engines/inspect-backup.d.ts.map +1 -0
- package/dist/infra/engines/inspect-backup.js +97 -0
- package/dist/infra/engines/inspect-backup.js.map +1 -0
- package/dist/infra/engines/mysql/mysql.engine.d.ts +1 -1
- package/dist/infra/engines/mysql/mysql.engine.d.ts.map +1 -1
- package/dist/infra/engines/mysql/mysql.engine.js +4 -1
- package/dist/infra/engines/mysql/mysql.engine.js.map +1 -1
- package/package.json +1 -1
package/README.pt-BR.md
CHANGED
|
@@ -8,11 +8,11 @@
|
|
|
8
8
|
<img src=".github/assets/logo.svg" alt="Herdux banner" style="max-width: 100%; width: 600px;" />
|
|
9
9
|
</p>
|
|
10
10
|
|
|
11
|
-
##
|
|
11
|
+
## Herdux — Database Workflow CLI
|
|
12
12
|
|
|
13
13
|
Uma CLI rápida e interativa que remove a fricção dos workflows diários com bancos de dados locais, especialmente ao lidar com múltiplas instâncias e grandes datasets.
|
|
14
14
|
|
|
15
|
-

|
|
16
16
|

|
|
17
17
|

|
|
18
18
|

|
|
@@ -23,27 +23,21 @@ Uma CLI rápida e interativa que remove a fricção dos workflows diários com b
|
|
|
23
23
|
|
|
24
24
|
> Otimizado para ambientes locais e de desenvolvimento. O uso em produção é suportado com configuração explícita.
|
|
25
25
|
|
|
26
|
-
<!-- <p align="center">
|
|
27
|
-
<img src=".github/herdux.gif" alt="herdux terminal gif" width="1220" />
|
|
28
|
-
</p> -->
|
|
29
|
-
|
|
30
26
|
---
|
|
31
27
|
|
|
32
|
-
##
|
|
28
|
+
## Início Rápido
|
|
33
29
|
|
|
34
30
|
```bash
|
|
35
31
|
npm install -g herdux-cli
|
|
36
32
|
|
|
37
|
-
#
|
|
33
|
+
# Use 'herdux' ou o alias mais curto 'hdx'
|
|
38
34
|
hdx doctor
|
|
39
35
|
herdux list
|
|
40
36
|
```
|
|
41
37
|
|
|
42
|
-
É só isso. Você já está gerenciando bancos de dados.
|
|
43
|
-
|
|
44
38
|
---
|
|
45
39
|
|
|
46
|
-
##
|
|
40
|
+
## Engines Suportadas
|
|
47
41
|
|
|
48
42
|
| Engine | Status | Ferramentas Cliente Necessárias |
|
|
49
43
|
| ---------- | ------ | ------------------------------- |
|
|
@@ -51,33 +45,22 @@ herdux list
|
|
|
51
45
|
| MySQL | ✅ | `mysql`, `mysqldump` |
|
|
52
46
|
| SQLite | ✅ | `sqlite3` |
|
|
53
47
|
|
|
54
|
-
|
|
48
|
+
Use `--engine <nome>` ou configure a engine em um perfil salvo. PostgreSQL é o padrão.
|
|
55
49
|
|
|
56
50
|
```bash
|
|
57
|
-
# PostgreSQL (padrão)
|
|
58
|
-
herdux list
|
|
59
|
-
herdux
|
|
60
|
-
|
|
61
|
-
# MySQL
|
|
62
|
-
herdux --engine mysql list
|
|
63
|
-
herdux --engine mysql create mydb
|
|
64
|
-
|
|
65
|
-
# SQLite (baseado em arquivos, sem servidor)
|
|
66
|
-
herdux --engine sqlite list
|
|
67
|
-
herdux --engine sqlite create mydb
|
|
68
|
-
|
|
69
|
-
# Ou salve no perfil e esqueça
|
|
70
|
-
herdux config add mysql-local --port 3306 --user root --password secret --engine mysql
|
|
71
|
-
herdux list -s mysql-local
|
|
51
|
+
herdux list # PostgreSQL (padrão)
|
|
52
|
+
herdux --engine mysql list # MySQL
|
|
53
|
+
herdux --engine sqlite list # SQLite (baseado em arquivos, sem servidor)
|
|
54
|
+
herdux list -s meu-perfil # Usando um perfil de servidor salvo
|
|
72
55
|
```
|
|
73
56
|
|
|
74
57
|
---
|
|
75
58
|
|
|
76
59
|
## Por que Herdux?
|
|
77
60
|
|
|
78
|
-
Gerenciar bancos de dados locais
|
|
61
|
+
Gerenciar bancos de dados locais por meio de binários brutos é repetitivo, propenso a erros e diferente para cada engine.
|
|
79
62
|
|
|
80
|
-
|
|
63
|
+
**Antes:**
|
|
81
64
|
|
|
82
65
|
```bash
|
|
83
66
|
# Backup PostgreSQL
|
|
@@ -86,15 +69,14 @@ pg_dump -U postgres -h localhost -p 5416 -Fc -f ./backups/mydb.dump mydb
|
|
|
86
69
|
# Backup MySQL
|
|
87
70
|
mysqldump -u root -h localhost -P 3306 -p mydb > ./backups/mydb.sql
|
|
88
71
|
|
|
89
|
-
# Dropar manualmente, restaurar, verificar ferramentas...
|
|
90
72
|
# Flags diferentes, ferramentas diferentes, memória muscular diferente para cada engine.
|
|
91
73
|
```
|
|
92
74
|
|
|
93
|
-
|
|
75
|
+
**Depois:**
|
|
94
76
|
|
|
95
77
|
```bash
|
|
96
78
|
herdux backup mydb --drop --yes # Backup + drop em um comando
|
|
97
|
-
herdux restore ./backups/mydb.dump --db mydb #
|
|
79
|
+
herdux restore ./backups/mydb.dump --db mydb # Detecta formato, cria DB se necessário
|
|
98
80
|
herdux clean # Multi-seleção e batch-drop de bancos
|
|
99
81
|
herdux doctor # Verificação completa do sistema
|
|
100
82
|
```
|
|
@@ -103,80 +85,23 @@ Mesmos comandos. Qualquer engine. Menos flags. Menos erros. Zero fadiga de termi
|
|
|
103
85
|
|
|
104
86
|
---
|
|
105
87
|
|
|
106
|
-
##
|
|
107
|
-
|
|
108
|
-
O **Herdux** foi construído _por desenvolvedores, para desenvolvedores_.
|
|
109
|
-
|
|
110
|
-
Ele nasceu da frustração diária de ter que constantemente restaurar backups para testar um estado específico, dropar bancos corrompidos durante o desenvolvimento e lidar com binários crus de bancos de dados toda hora.
|
|
111
|
-
|
|
112
|
-
Ele é especificamente projetado para desenvolvedores que:
|
|
113
|
-
|
|
114
|
-
- Gerenciam infraestruturas locais e precisam verificar o tamanho dos discos antes de popular novos bancos.
|
|
115
|
-
- Querem clonar, popular (seed) e resetar bancos de dados rapidamente sem precisar ler documentações complexas.
|
|
116
|
-
- Precisam de fluxos seguros de backup & restore que não dependam de scripts bash frágeis.
|
|
117
|
-
- Preferem ferramentas focadas no terminal (terminal-first).
|
|
118
|
-
- Querem resolução previsível de conexões sem mágicas ocultas.
|
|
119
|
-
- Trabalham com **múltiplas engines de banco de dados** (PostgreSQL, MySQL, SQLite) e querem uma interface unificada.
|
|
120
|
-
|
|
121
|
-
Se você gerencia bancos de dados localmente e compartilha dessa dor, o Herdux foi criado para você.
|
|
122
|
-
|
|
123
|
-
---
|
|
124
|
-
|
|
125
|
-
## 🚀 Funcionalidades Principais
|
|
126
|
-
|
|
127
|
-
- **🔌 Suporte Multi-Engine** — Suporte de primeira classe para PostgreSQL, MySQL e SQLite. Mesmos comandos, mesmo workflow, qualquer engine.
|
|
128
|
-
- **📋 Listagem Inteligente** — Estratégia otimizada para clusters massivos. Flag opcional `--size` para análise de uso de disco, ordenado do maior para o menor.
|
|
129
|
-
- **💾 Backup & Restore Inteligente** — Suporta formatos Custom (`.dump`) e Plain (`.sql`). Detecta automaticamente a ferramenta correta para restauração.
|
|
130
|
-
- **🧹 Limpeza em Massa** — Multi-seleção de bancos, backup opcional e batch-drop. Recupere espaço em disco instantaneamente.
|
|
131
|
-
- **🩺 Diagnóstico do Sistema** — Verificação completa de saúde com um único comando: binários, autenticação e conectividade.
|
|
132
|
-
- **⚙️ Perfis Persistentes** — Salve configurações de servidor nomeadas com tipo de engine. Alterne entre ambientes com `-s pg16`.
|
|
133
|
-
- **🎯 Resolução Inteligente de Conexão e Engine** — Flags CLI explícitas → perfis → padrões salvos → auto-descoberta. Sempre previsível.
|
|
134
|
-
|
|
135
|
-
---
|
|
136
|
-
|
|
137
|
-
## 💡 Filosofia
|
|
138
|
-
|
|
139
|
-
**Herdux** combina _herd_ (manada/rebanho) e _UX_ — entregando uma melhor Developer Experience ao gerenciar seus clusters de bancos de dados. O nome reflete nosso foco em melhorar a experiência de desenvolvimento ao gerenciar "manadas" de bancos.
|
|
140
|
-
|
|
141
|
-
O **Herdux** segue três princípios:
|
|
142
|
-
|
|
143
|
-
- **Segurança primeiro** — Nunca apaga dados sem confirmação explícita ou um backup verificado.
|
|
144
|
-
- **Explícito sobre implícito** — A resolução de conexão e engine segue uma prioridade estrita e documentada. Sem mágica.
|
|
145
|
-
- **Otimização de workflow** — Cada comando é projetado para te salvar de tarefas repetitivas no terminal.
|
|
146
|
-
|
|
147
|
-
---
|
|
148
|
-
|
|
149
|
-
## 🔒 Segurança
|
|
150
|
-
|
|
151
|
-
O **Herdux** trata operações destrutivas com cuidado:
|
|
152
|
-
|
|
153
|
-
- **Nunca dropa um banco** sem confirmação explícita
|
|
154
|
-
- **Aborta toda a operação** se um backup de segurança falhar durante o `herdux clean`
|
|
155
|
-
- **Valida códigos de saída das ferramentas de backup** antes de considerar um backup bem-sucedido
|
|
156
|
-
- **Requer a flag `--drop`** intencionalmente — dropar nunca é o padrão
|
|
157
|
-
- **`--yes` deve ser combinado com `--drop`** — não é possível pular confirmação sozinho
|
|
158
|
-
|
|
159
|
-
> Se você solicitar um backup antes de dropar e esse backup falhar, o **Herdux** para imediatamente. Nenhum dado é perdido.
|
|
160
|
-
|
|
161
|
-
---
|
|
162
|
-
|
|
163
|
-
## 🧩 Requisitos
|
|
88
|
+
## Requisitos
|
|
164
89
|
|
|
165
90
|
- **Node.js** 18 ou superior
|
|
166
|
-
- **Para PostgreSQL:** `psql`, `pg_dump`, `pg_restore` instalados e
|
|
167
|
-
- **Para MySQL:** `mysql`, `mysqldump` instalados e
|
|
168
|
-
- **Para SQLite:** `sqlite3` instalado e
|
|
91
|
+
- **Para PostgreSQL:** `psql`, `pg_dump`, `pg_restore` instalados e no `PATH`
|
|
92
|
+
- **Para MySQL:** `mysql`, `mysqldump` instalados e no `PATH`
|
|
93
|
+
- **Para SQLite:** `sqlite3` instalado e no `PATH`
|
|
169
94
|
|
|
170
95
|
> [!TIP]
|
|
171
|
-
> Execute `herdux doctor` após a instalação para verificar se tudo está configurado corretamente.
|
|
96
|
+
> Execute `herdux doctor` após a instalação para verificar se tudo está configurado corretamente.
|
|
172
97
|
|
|
173
98
|
---
|
|
174
99
|
|
|
175
|
-
##
|
|
100
|
+
## Instalação
|
|
176
101
|
|
|
177
102
|
**npm (recomendado):**
|
|
178
103
|
|
|
179
|
-
>
|
|
104
|
+
> **Importante:** Use a flag `-g` para que a CLI fique disponível em qualquer lugar no terminal.
|
|
180
105
|
|
|
181
106
|
```bash
|
|
182
107
|
npm install -g herdux-cli
|
|
@@ -194,9 +119,7 @@ npm link
|
|
|
194
119
|
|
|
195
120
|
---
|
|
196
121
|
|
|
197
|
-
##
|
|
198
|
-
|
|
199
|
-
Todos os comandos funcionam com PostgreSQL, MySQL e SQLite. Use `--engine mysql` ou `--engine sqlite`, ou configure a engine no seu perfil de servidor.
|
|
122
|
+
## Comandos
|
|
200
123
|
|
|
201
124
|
### `herdux version`
|
|
202
125
|
|
|
@@ -209,11 +132,7 @@ herdux --engine mysql version
|
|
|
209
132
|
|
|
210
133
|
### `herdux doctor`
|
|
211
134
|
|
|
212
|
-
Executa uma verificação completa
|
|
213
|
-
|
|
214
|
-
- Verifica se as ferramentas cliente necessárias estão instaladas e acessíveis (específicas por engine)
|
|
215
|
-
- Tenta uma conexão real usando a configuração resolvida
|
|
216
|
-
- Testa autenticação contra o servidor alvo
|
|
135
|
+
Executa uma verificação completa do sistema: verifica ferramentas cliente, testa conectividade e valida autenticação.
|
|
217
136
|
|
|
218
137
|
```bash
|
|
219
138
|
herdux doctor
|
|
@@ -222,17 +141,17 @@ herdux --engine mysql doctor
|
|
|
222
141
|
|
|
223
142
|
---
|
|
224
143
|
|
|
225
|
-
###
|
|
144
|
+
### `herdux list`
|
|
226
145
|
|
|
227
146
|
Lista todos os bancos de dados no servidor conectado.
|
|
228
147
|
|
|
229
148
|
```bash
|
|
230
|
-
herdux list #
|
|
231
|
-
herdux ls --size # Inclui tamanho em disco, ordenado do maior
|
|
149
|
+
herdux list # Nome, owner, encoding
|
|
150
|
+
herdux ls --size # Inclui tamanho em disco, ordenado do maior para o menor
|
|
232
151
|
```
|
|
233
152
|
|
|
234
153
|
> [!NOTE]
|
|
235
|
-
> A flag `--size` calcula o uso físico de disco. Em servidores com dezenas de bancos
|
|
154
|
+
> A flag `--size` calcula o uso físico de disco. Em servidores com dezenas de bancos de vários GBs, isso pode levar alguns minutos.
|
|
236
155
|
|
|
237
156
|
---
|
|
238
157
|
|
|
@@ -241,8 +160,8 @@ herdux ls --size # Inclui tamanho em disco, ordenado do maior → menor
|
|
|
241
160
|
Cria um novo banco de dados.
|
|
242
161
|
|
|
243
162
|
```bash
|
|
244
|
-
herdux create
|
|
245
|
-
herdux --engine mysql create
|
|
163
|
+
herdux create meu_novo_banco
|
|
164
|
+
herdux --engine mysql create meu_novo_banco
|
|
246
165
|
```
|
|
247
166
|
|
|
248
167
|
### `herdux drop <nome>`
|
|
@@ -250,209 +169,188 @@ herdux --engine mysql create meu_novo_db
|
|
|
250
169
|
Remove um banco de dados com confirmação interativa.
|
|
251
170
|
|
|
252
171
|
```bash
|
|
253
|
-
herdux drop
|
|
172
|
+
herdux drop banco_antigo
|
|
254
173
|
```
|
|
255
174
|
|
|
256
175
|
---
|
|
257
176
|
|
|
258
|
-
###
|
|
259
|
-
|
|
260
|
-
Trabalhando com bancos de desenvolvimento cheios de seeds? Precisa recuperar espaço em disco rápido?
|
|
177
|
+
### `herdux clean`
|
|
261
178
|
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
- **Multi-seleção** de bancos a partir de uma interface interativa com checkboxes
|
|
265
|
-
- **Gerar backups de segurança opcionais** antes de qualquer ação destrutiva
|
|
266
|
-
- **Batch-drop** de todos os bancos selecionados com segurança
|
|
267
|
-
- **Abortar imediatamente** se qualquer backup falhar, prevenindo perda de dados
|
|
179
|
+
Limpeza em massa interativa: selecione vários bancos, gere backups de segurança e remova-os em lote.
|
|
268
180
|
|
|
269
181
|
```bash
|
|
270
182
|
herdux clean
|
|
271
183
|
```
|
|
272
184
|
|
|
273
|
-
|
|
185
|
+
Aborta imediatamente se algum backup de segurança falhar. Nenhum dado é removido sem um backup confirmado.
|
|
274
186
|
|
|
275
187
|
---
|
|
276
188
|
|
|
277
|
-
###
|
|
189
|
+
### `herdux backup <database>`
|
|
278
190
|
|
|
279
|
-
|
|
191
|
+
Cria um backup com timestamp em `~/.herdux/backups/` por padrão.
|
|
280
192
|
|
|
281
193
|
```bash
|
|
282
|
-
herdux backup mydb # Formato
|
|
194
|
+
herdux backup mydb # Formato nativo da engine (.dump para PG, .db para SQLite, .sql para MySQL)
|
|
283
195
|
herdux backup mydb --format plain # SQL puro (.sql)
|
|
284
|
-
herdux backup mydb --drop # Backup
|
|
285
|
-
herdux backup mydb --drop --yes # Backup + drop
|
|
196
|
+
herdux backup mydb --drop # Backup e depois pergunta se quer dropar
|
|
197
|
+
herdux backup mydb --drop --yes # Backup + drop sem confirmação
|
|
286
198
|
herdux backup mydb -o ./meus-backups # Diretório de saída personalizado
|
|
287
199
|
```
|
|
288
200
|
|
|
289
201
|
| Opção | Descrição |
|
|
290
202
|
| --------------------- | ---------------------------------------------------------- |
|
|
291
|
-
| `-F, --format <tipo>` | `custom` (padrão,
|
|
292
|
-
| `-d, --drop` | Pergunta se
|
|
293
|
-
| `-y, --yes` | Pula confirmação
|
|
294
|
-
| `-o, --output <dir>` | Diretório de saída (padrão:
|
|
203
|
+
| `-F, --format <tipo>` | `custom` (padrão, nativo da engine) ou `plain` (SQL) |
|
|
204
|
+
| `-d, --drop` | Pergunta se quer dropar o banco após o backup bem-sucedido |
|
|
205
|
+
| `-y, --yes` | Pula a confirmação de drop (requer `--drop`) |
|
|
206
|
+
| `-o, --output <dir>` | Diretório de saída (padrão: `~/.herdux/backups`) |
|
|
295
207
|
|
|
296
208
|
---
|
|
297
209
|
|
|
298
|
-
###
|
|
299
|
-
|
|
300
|
-
Restaura um banco de dados a partir de um arquivo de backup. Detecta automaticamente o formato:
|
|
210
|
+
### `herdux restore <arquivo>`
|
|
301
211
|
|
|
302
|
-
|
|
303
|
-
- `.dump` ou qualquer outra extensão → usa a ferramenta de restore apropriada
|
|
212
|
+
Restaura um banco de dados a partir de um arquivo de backup. Detecta automaticamente o formato pela extensão.
|
|
304
213
|
|
|
305
214
|
```bash
|
|
306
215
|
herdux restore ./backups/mydb_2026-02-23.dump --db mydb
|
|
307
216
|
herdux restore ./exports/data.sql --db mydb
|
|
217
|
+
herdux restore archive.bkp --db mydb --format custom # Forçar formato
|
|
308
218
|
```
|
|
309
219
|
|
|
310
|
-
|
|
220
|
+
O banco de dados é criado automaticamente se não existir.
|
|
221
|
+
|
|
222
|
+
> [!NOTE]
|
|
223
|
+
> Ao restaurar dumps de ambientes gerenciados (ex: AWS RDS), o Herdux configura a ferramenta de restauração para ignorar ownership e ACLs, evitando erros por roles de produção ausentes localmente.
|
|
224
|
+
|
|
225
|
+
---
|
|
226
|
+
|
|
227
|
+
### `herdux inspect <arquivo>`
|
|
228
|
+
|
|
229
|
+
Inspeciona o conteúdo de um arquivo de backup sem se conectar ao banco de dados. Funciona completamente offline.
|
|
230
|
+
|
|
231
|
+
| Extensão | Output |
|
|
232
|
+
| ----------------- | ------------------------------------------------------------------------------ |
|
|
233
|
+
| `.dump` | Formato custom do PostgreSQL: Table of Contents completo (`pg_restore --list`) |
|
|
234
|
+
| `.sql` | SQL puro (qualquer engine): declarações CREATE TABLE, VIEW, INDEX, SEQUENCE |
|
|
235
|
+
| `.db` / `.sqlite` | Arquivo SQLite: schema (`sqlite3 .schema`) |
|
|
311
236
|
|
|
312
237
|
```bash
|
|
313
|
-
|
|
314
|
-
|
|
238
|
+
hdx inspect backup.dump # Table of Contents de um dump custom do PostgreSQL
|
|
239
|
+
hdx inspect export.sql # CREATE statements extraídos de SQL puro
|
|
240
|
+
hdx inspect mydb.db # Schema do SQLite
|
|
315
241
|
```
|
|
316
242
|
|
|
317
|
-
|
|
318
|
-
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
### `herdux docker`
|
|
246
|
+
|
|
247
|
+
Gerencia containers de banco de dados rodando via Docker. Nao requer conexao ativa com o banco.
|
|
248
|
+
|
|
249
|
+
```bash
|
|
250
|
+
hdx docker list # Lista containers postgres/mysql em execucao
|
|
251
|
+
hdx docker list --all # Inclui containers parados
|
|
252
|
+
hdx docker start pg-dev # Inicia um container parado
|
|
253
|
+
hdx docker stop pg-dev # Para um container em execucao
|
|
254
|
+
hdx docker stop pg-dev --remove # Para e remove o container
|
|
255
|
+
```
|
|
319
256
|
|
|
320
257
|
---
|
|
321
258
|
|
|
322
|
-
##
|
|
259
|
+
## Configuração e Perfis de Servidor
|
|
323
260
|
|
|
324
|
-
|
|
261
|
+
A configuração é armazenada em `~/.herdux/config.json`.
|
|
325
262
|
|
|
326
|
-
###
|
|
263
|
+
### Valores globais padrão
|
|
327
264
|
|
|
328
265
|
```bash
|
|
329
|
-
herdux config set engine postgres
|
|
266
|
+
herdux config set engine postgres
|
|
330
267
|
herdux config set user postgres
|
|
331
268
|
herdux config set password minha_senha
|
|
332
269
|
herdux config set port 5432
|
|
333
270
|
```
|
|
334
271
|
|
|
335
|
-
### Perfis de
|
|
336
|
-
|
|
337
|
-
Gerencie múltiplas instâncias de banco de dados sem esforço:
|
|
272
|
+
### Perfis de servidor nomeados
|
|
338
273
|
|
|
339
274
|
```bash
|
|
340
|
-
# Perfis PostgreSQL
|
|
341
275
|
herdux config add pg16 --port 5416
|
|
342
276
|
herdux config add pg17 --port 5417 --user admin
|
|
343
|
-
|
|
344
|
-
# Perfis MySQL (a engine é salva no perfil)
|
|
345
277
|
herdux config add mysql-dev --port 3306 --user root --password secret --engine mysql
|
|
346
|
-
|
|
347
|
-
# Servidores remotos
|
|
348
278
|
herdux config add staging --host 192.168.0.10 --port 5432
|
|
349
279
|
```
|
|
350
280
|
|
|
351
|
-
|
|
281
|
+
Use perfis com a flag `-s`:
|
|
352
282
|
|
|
353
283
|
```bash
|
|
354
284
|
herdux list -s pg16
|
|
355
285
|
herdux backup mydb -s mysql-dev
|
|
356
286
|
```
|
|
357
287
|
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
### Visualizar & Gerenciar Config
|
|
288
|
+
### Gerenciar configuração
|
|
361
289
|
|
|
362
290
|
```bash
|
|
363
|
-
herdux config list #
|
|
364
|
-
herdux config get port #
|
|
365
|
-
herdux config rm pg16 #
|
|
366
|
-
herdux config reset #
|
|
291
|
+
herdux config list # Mostrar todas as configurações e perfis
|
|
292
|
+
herdux config get port # Obter um valor específico
|
|
293
|
+
herdux config rm pg16 # Remover um perfil
|
|
294
|
+
herdux config reset # Limpar toda a configuração
|
|
367
295
|
```
|
|
368
296
|
|
|
369
297
|
---
|
|
370
298
|
|
|
371
|
-
##
|
|
372
|
-
|
|
373
|
-
Ao resolver como se conectar e qual engine usar, o **Herdux** segue uma ordem de prioridade estrita e previsível:
|
|
374
|
-
|
|
375
|
-
### Prioridade da Engine
|
|
376
|
-
|
|
377
|
-
| Prioridade | Fonte | Exemplo |
|
|
378
|
-
| ---------- | ---------------- | -------------------------------- |
|
|
379
|
-
| 1️⃣ | **Flag CLI** | `herdux --engine mysql list` |
|
|
380
|
-
| 2️⃣ | **Perfil** | Campo `engine` do perfil |
|
|
381
|
-
| 3️⃣ | **Padrão salvo** | `herdux config set engine mysql` |
|
|
382
|
-
| 4️⃣ | **Fallback** | `postgres` |
|
|
383
|
-
|
|
384
|
-
### Prioridade da Conexão
|
|
385
|
-
|
|
386
|
-
| Prioridade | Fonte | Exemplo |
|
|
387
|
-
| ---------- | ---------------------- | ------------------------------------------------------- |
|
|
388
|
-
| 1️⃣ | **Flags CLI** | `herdux list --port 5417` |
|
|
389
|
-
| 2️⃣ | **Perfil de servidor** | `herdux list -s pg16` |
|
|
390
|
-
| 3️⃣ | **Padrões salvos** | `herdux config set port 5432` |
|
|
391
|
-
| 4️⃣ | **Auto-descoberta** | Escaneia portas comuns; pergunta se encontrar múltiplas |
|
|
392
|
-
|
|
393
|
-
Isso significa que a entrada explícita sempre vence. Sem surpresas.
|
|
394
|
-
|
|
395
|
-
---
|
|
396
|
-
|
|
397
|
-
## 🤔 Por que não pgAdmin / phpMyAdmin?
|
|
398
|
-
|
|
399
|
-
O **Herdux** não é um substituto de GUI.
|
|
400
|
-
É um acelerador de workflow para desenvolvedores que vivem no terminal.
|
|
401
|
-
|
|
402
|
-
Sem GUI. Sem overhead. Só velocidade.
|
|
403
|
-
|
|
404
|
-
---
|
|
405
|
-
|
|
406
|
-
## 🧠 Princípios de Design
|
|
299
|
+
## Resolução de Conexão e Engine
|
|
407
300
|
|
|
408
|
-
|
|
409
|
-
- Sem mágicas destrutivas.
|
|
410
|
-
- Resolução determinística de conexão e engine.
|
|
411
|
-
- Comandos explícitos e combináveis.
|
|
412
|
-
- Engine-agnostic: mesma interface, qualquer banco de dados.
|
|
301
|
+
O Herdux segue uma prioridade estrita e previsível ao resolver como se conectar.
|
|
413
302
|
|
|
414
|
-
|
|
303
|
+
**Prioridade de engine:**
|
|
415
304
|
|
|
416
|
-
|
|
305
|
+
| Prioridade | Fonte | Exemplo |
|
|
306
|
+
| ---------- | ------------ | -------------------------------- |
|
|
307
|
+
| 1 | Flag CLI | `herdux --engine mysql list` |
|
|
308
|
+
| 2 | Perfil | Campo `engine` do perfil |
|
|
309
|
+
| 3 | Padrão salvo | `herdux config set engine mysql` |
|
|
310
|
+
| 4 | Fallback | `postgres` |
|
|
417
311
|
|
|
418
|
-
|
|
312
|
+
**Prioridade de conexão:**
|
|
419
313
|
|
|
420
|
-
|
|
314
|
+
| Prioridade | Fonte | Exemplo |
|
|
315
|
+
| ---------- | -------------- | ------------------------------------------ |
|
|
316
|
+
| 1 | Flags CLI | `herdux list --port 5417` |
|
|
317
|
+
| 2 | Perfil | `herdux list -s pg16` |
|
|
318
|
+
| 3 | Padrões salvos | `herdux config set port 5432` |
|
|
319
|
+
| 4 | Auto-discovery | Escaneia portas comuns; pergunta se vários |
|
|
421
320
|
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
Consulte o [ROADMAP.md](./ROADMAP.md) para ver nossos planos futuros detalhados, incluindo integração com Docker e backups criptografados.
|
|
321
|
+
Input explícito sempre vence. Sem surpresas.
|
|
425
322
|
|
|
426
323
|
---
|
|
427
324
|
|
|
428
|
-
##
|
|
429
|
-
|
|
430
|
-
PRs são bem-vindas! Por favor, abra uma issue primeiro para discutir mudanças significativas.
|
|
325
|
+
## Contribuindo
|
|
431
326
|
|
|
432
327
|
```bash
|
|
433
328
|
git clone https://github.com/herdux/herdux-cli.git
|
|
434
329
|
cd herdux-cli
|
|
435
330
|
npm install
|
|
436
|
-
npm run dev
|
|
437
331
|
|
|
438
|
-
#
|
|
439
|
-
npm run test:
|
|
440
|
-
#
|
|
441
|
-
npm run test:e2e:
|
|
442
|
-
npm run test:e2e:
|
|
332
|
+
npm run test:unit # Testes unitários (238 testes, todas as engines)
|
|
333
|
+
npm run test:integration # Testes de integração
|
|
334
|
+
npm run test:e2e:pgsql # Testes E2E para PostgreSQL (requer Docker)
|
|
335
|
+
npm run test:e2e:mysql # Testes E2E para MySQL (requer Docker)
|
|
336
|
+
npm run test:e2e:sqlite # Testes E2E para SQLite (requer sqlite3)
|
|
443
337
|
```
|
|
444
338
|
|
|
339
|
+
O Herdux segue limites arquiteturais estritos: comandos são agnósticos de engine, engines encapsulam todo comportamento específico de banco, e todos os binários são isolados por adaptadores. Mantenha esses limites ao contribuir.
|
|
340
|
+
|
|
341
|
+
PRs são bem-vindos. Abra uma issue primeiro para mudanças maiores.
|
|
342
|
+
|
|
445
343
|
---
|
|
446
344
|
|
|
447
|
-
##
|
|
345
|
+
## Suporte
|
|
448
346
|
|
|
449
|
-
Se o
|
|
347
|
+
Se o Herdux te salvou horas de debugging e trabalho com bancos de dados, considere apoiar o projeto:
|
|
450
348
|
|
|
451
349
|
<a href="https://github.com/sponsors/eduardozaniboni" target="_blank"><img src="https://img.shields.io/badge/Sponsor-%E2%9D%A4-pink?style=for-the-badge&logo=github" alt="GitHub Sponsors"></a>
|
|
452
350
|
<a href="https://www.buymeacoffee.com/eduardozaniboni" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" style="height: 28px !important;width: 100px !important;" ></a>
|
|
453
351
|
|
|
454
352
|
---
|
|
455
353
|
|
|
456
|
-
##
|
|
354
|
+
## Licença
|
|
457
355
|
|
|
458
356
|
MIT
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clean.d.ts","sourceRoot":"","sources":["../../src/commands/clean.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"clean.d.ts","sourceRoot":"","sources":["../../src/commands/clean.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUzC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmI3D"}
|
package/dist/commands/clean.js
CHANGED
|
@@ -3,6 +3,7 @@ import ora from "ora";
|
|
|
3
3
|
import prompts from "prompts";
|
|
4
4
|
import { resolveEngineAndConnection } from "../infra/engines/resolve-connection.js";
|
|
5
5
|
import * as config from "../infra/config/config.service.js";
|
|
6
|
+
import { logger } from "../presentation/logger.js";
|
|
6
7
|
import { join } from "path";
|
|
7
8
|
import { homedir } from "os";
|
|
8
9
|
export function registerCleanCommand(program) {
|
|
@@ -95,7 +96,8 @@ Note: You will be prompted to select databases, optionally backup them first,
|
|
|
95
96
|
console.error(chalk.red(` ↳ ${message}`));
|
|
96
97
|
}
|
|
97
98
|
}
|
|
98
|
-
|
|
99
|
+
logger.blank();
|
|
100
|
+
logger.success("Clean operation completed.");
|
|
99
101
|
}
|
|
100
102
|
catch (err) {
|
|
101
103
|
const message = err instanceof Error ? err.message : String(err);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clean.js","sourceRoot":"","sources":["../../src/commands/clean.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"clean.js","sourceRoot":"","sources":["../../src/commands/clean.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0C5D"}
|
package/dist/commands/create.js
CHANGED
|
@@ -19,9 +19,11 @@ Examples:
|
|
|
19
19
|
const rawOpts = program.opts();
|
|
20
20
|
const { engine, opts } = await resolveEngineAndConnection(rawOpts);
|
|
21
21
|
await engine.checkClientVersion();
|
|
22
|
+
const host = opts.host ?? "localhost";
|
|
23
|
+
const connLabel = opts.port ? `${host}:${opts.port}` : host;
|
|
22
24
|
const spinner = ora(`Creating database "${name}"...`).start();
|
|
23
25
|
await engine.createDatabase(name, opts);
|
|
24
|
-
spinner.succeed(`Database "${name}" created
|
|
26
|
+
spinner.succeed(`Database "${name}" created (${engine.getEngineName()} at ${connLabel})\n`);
|
|
25
27
|
}
|
|
26
28
|
catch (err) {
|
|
27
29
|
const message = err instanceof Error ? err.message : String(err);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;AAEpF,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,OAAO;SACJ,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,6BAA6B,CAAC;SAC1C,WAAW,CACV,OAAO,EACP;;;;kDAI4C,CAC7C;SACA,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE;QAC7B,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CACP,8BAA8B,IAAI,uEAAuE,CAC1G,CACF,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;YAC/B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,0BAA0B,CAAC,OAAO,CAAC,CAAC;YACnE,MAAM,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAElC,MAAM,OAAO,GAAG,GAAG,CAAC,sBAAsB,IAAI,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;YAE9D,MAAM,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACxC,OAAO,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;AAEpF,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,OAAO;SACJ,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,6BAA6B,CAAC;SAC1C,WAAW,CACV,OAAO,EACP;;;;kDAI4C,CAC7C;SACA,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE;QAC7B,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CACP,8BAA8B,IAAI,uEAAuE,CAC1G,CACF,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;YAC/B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,0BAA0B,CAAC,OAAO,CAAC,CAAC;YACnE,MAAM,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAElC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,WAAW,CAAC;YACtC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAE5D,MAAM,OAAO,GAAG,GAAG,CAAC,sBAAsB,IAAI,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;YAE9D,MAAM,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACxC,OAAO,CAAC,OAAO,CACb,aAAa,IAAI,cAAc,MAAM,CAAC,aAAa,EAAE,OAAO,SAAS,KAAK,CAC3E,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,OAAO,IAAI,CAAC,CAAC,CAAC;YAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docker.d.ts","sourceRoot":"","sources":["../../src/commands/docker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsBzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqH5D"}
|