herdux-cli 0.4.2 → 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 +116 -241
- package/README.pt-BR.md +120 -215
- package/dist/commands/backup.d.ts.map +1 -1
- package/dist/commands/backup.js +12 -1
- package/dist/commands/backup.js.map +1 -1
- package/dist/commands/clean.d.ts.map +1 -1
- package/dist/commands/clean.js +12 -2
- package/dist/commands/clean.js.map +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +19 -2
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/create.d.ts.map +1 -1
- package/dist/commands/create.js +13 -2
- 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 +8 -2
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/drop.d.ts.map +1 -1
- package/dist/commands/drop.js +14 -2
- 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 +11 -2
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/restore.d.ts.map +1 -1
- package/dist/commands/restore.js +10 -1
- package/dist/commands/restore.js.map +1 -1
- package/dist/commands/version.d.ts.map +1 -1
- package/dist/commands/version.js +32 -17
- package/dist/commands/version.js.map +1 -1
- package/dist/core/interfaces/database-engine.interface.d.ts +1 -1
- package/dist/core/interfaces/database-engine.interface.d.ts.map +1 -1
- package/dist/index.js +31 -2
- 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/engine-factory.d.ts.map +1 -1
- package/dist/infra/engines/engine-factory.js +3 -0
- package/dist/infra/engines/engine-factory.js.map +1 -1
- 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/dist/infra/engines/resolve-connection.d.ts.map +1 -1
- package/dist/infra/engines/resolve-connection.js +78 -55
- package/dist/infra/engines/resolve-connection.js.map +1 -1
- package/dist/infra/engines/sqlite/sqlite-env.d.ts +2 -0
- package/dist/infra/engines/sqlite/sqlite-env.d.ts.map +1 -0
- package/dist/infra/engines/sqlite/sqlite-env.js +24 -0
- package/dist/infra/engines/sqlite/sqlite-env.js.map +1 -0
- package/dist/infra/engines/sqlite/sqlite.engine.d.ts +21 -0
- package/dist/infra/engines/sqlite/sqlite.engine.d.ts.map +1 -0
- package/dist/infra/engines/sqlite/sqlite.engine.js +207 -0
- package/dist/infra/engines/sqlite/sqlite.engine.js.map +1 -0
- package/package.json +4 -1
package/README.pt-BR.md
CHANGED
|
@@ -8,70 +8,59 @@
|
|
|
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
|

|
|
19
19
|

|
|
20
|
+

|
|
20
21
|
[](https://github.com/sponsors/eduardozaniboni)
|
|
21
22
|
[](https://www.buymeacoffee.com/eduardozaniboni)
|
|
22
23
|
|
|
23
24
|
> Otimizado para ambientes locais e de desenvolvimento. O uso em produção é suportado com configuração explícita.
|
|
24
25
|
|
|
25
|
-
<!-- <p align="center">
|
|
26
|
-
<img src=".github/herdux.gif" alt="herdux terminal gif" width="1220" />
|
|
27
|
-
</p> -->
|
|
28
|
-
|
|
29
26
|
---
|
|
30
27
|
|
|
31
|
-
##
|
|
28
|
+
## Início Rápido
|
|
32
29
|
|
|
33
30
|
```bash
|
|
34
31
|
npm install -g herdux-cli
|
|
35
32
|
|
|
36
|
-
#
|
|
33
|
+
# Use 'herdux' ou o alias mais curto 'hdx'
|
|
37
34
|
hdx doctor
|
|
38
35
|
herdux list
|
|
39
36
|
```
|
|
40
37
|
|
|
41
|
-
É só isso. Você já está gerenciando bancos de dados.
|
|
42
|
-
|
|
43
38
|
---
|
|
44
39
|
|
|
45
|
-
##
|
|
40
|
+
## Engines Suportadas
|
|
46
41
|
|
|
47
42
|
| Engine | Status | Ferramentas Cliente Necessárias |
|
|
48
43
|
| ---------- | ------ | ------------------------------- |
|
|
49
44
|
| PostgreSQL | ✅ | `psql`, `pg_dump`, `pg_restore` |
|
|
50
45
|
| MySQL | ✅ | `mysql`, `mysqldump` |
|
|
46
|
+
| SQLite | ✅ | `sqlite3` |
|
|
51
47
|
|
|
52
|
-
|
|
48
|
+
Use `--engine <nome>` ou configure a engine em um perfil salvo. PostgreSQL é o padrão.
|
|
53
49
|
|
|
54
50
|
```bash
|
|
55
|
-
# PostgreSQL (padrão)
|
|
56
|
-
herdux list
|
|
57
|
-
herdux
|
|
58
|
-
|
|
59
|
-
# MySQL
|
|
60
|
-
herdux --engine mysql list
|
|
61
|
-
herdux --engine mysql create mydb
|
|
62
|
-
|
|
63
|
-
# Ou salve no perfil e esqueça
|
|
64
|
-
herdux config add mysql-local --port 3306 --user root --password secret --engine mysql
|
|
65
|
-
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
|
|
66
55
|
```
|
|
67
56
|
|
|
68
57
|
---
|
|
69
58
|
|
|
70
59
|
## Por que Herdux?
|
|
71
60
|
|
|
72
|
-
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.
|
|
73
62
|
|
|
74
|
-
|
|
63
|
+
**Antes:**
|
|
75
64
|
|
|
76
65
|
```bash
|
|
77
66
|
# Backup PostgreSQL
|
|
@@ -80,15 +69,14 @@ pg_dump -U postgres -h localhost -p 5416 -Fc -f ./backups/mydb.dump mydb
|
|
|
80
69
|
# Backup MySQL
|
|
81
70
|
mysqldump -u root -h localhost -P 3306 -p mydb > ./backups/mydb.sql
|
|
82
71
|
|
|
83
|
-
# Dropar manualmente, restaurar, verificar ferramentas...
|
|
84
72
|
# Flags diferentes, ferramentas diferentes, memória muscular diferente para cada engine.
|
|
85
73
|
```
|
|
86
74
|
|
|
87
|
-
|
|
75
|
+
**Depois:**
|
|
88
76
|
|
|
89
77
|
```bash
|
|
90
78
|
herdux backup mydb --drop --yes # Backup + drop em um comando
|
|
91
|
-
herdux restore ./backups/mydb.dump --db mydb #
|
|
79
|
+
herdux restore ./backups/mydb.dump --db mydb # Detecta formato, cria DB se necessário
|
|
92
80
|
herdux clean # Multi-seleção e batch-drop de bancos
|
|
93
81
|
herdux doctor # Verificação completa do sistema
|
|
94
82
|
```
|
|
@@ -97,79 +85,23 @@ Mesmos comandos. Qualquer engine. Menos flags. Menos erros. Zero fadiga de termi
|
|
|
97
85
|
|
|
98
86
|
---
|
|
99
87
|
|
|
100
|
-
##
|
|
101
|
-
|
|
102
|
-
O **Herdux** foi construído _por desenvolvedores, para desenvolvedores_.
|
|
103
|
-
|
|
104
|
-
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.
|
|
105
|
-
|
|
106
|
-
Ele é especificamente projetado para desenvolvedores que:
|
|
107
|
-
|
|
108
|
-
- Gerenciam infraestruturas locais e precisam verificar o tamanho dos discos antes de popular novos bancos.
|
|
109
|
-
- Querem clonar, popular (seed) e resetar bancos de dados rapidamente sem precisar ler documentações complexas.
|
|
110
|
-
- Precisam de fluxos seguros de backup & restore que não dependam de scripts bash frágeis.
|
|
111
|
-
- Preferem ferramentas focadas no terminal (terminal-first).
|
|
112
|
-
- Querem resolução previsível de conexões sem mágicas ocultas.
|
|
113
|
-
- Trabalham com **múltiplas engines de banco de dados** (PostgreSQL, MySQL) e querem uma interface unificada.
|
|
114
|
-
|
|
115
|
-
Se você gerencia bancos de dados localmente e compartilha dessa dor, o Herdux foi criado para você.
|
|
116
|
-
|
|
117
|
-
---
|
|
118
|
-
|
|
119
|
-
## 🚀 Funcionalidades Principais
|
|
120
|
-
|
|
121
|
-
- **🔌 Suporte Multi-Engine** — Suporte de primeira classe para PostgreSQL e MySQL. Mesmos comandos, mesmo workflow, qualquer engine.
|
|
122
|
-
- **📋 Listagem Inteligente** — Estratégia otimizada para clusters massivos. Flag opcional `--size` para análise de uso de disco, ordenado do maior para o menor.
|
|
123
|
-
- **💾 Backup & Restore Inteligente** — Suporta formatos Custom (`.dump`) e Plain (`.sql`). Detecta automaticamente a ferramenta correta para restauração.
|
|
124
|
-
- **🧹 Limpeza em Massa** — Multi-seleção de bancos, backup opcional e batch-drop. Recupere espaço em disco instantaneamente.
|
|
125
|
-
- **🩺 Diagnóstico do Sistema** — Verificação completa de saúde com um único comando: binários, autenticação e conectividade.
|
|
126
|
-
- **⚙️ Perfis Persistentes** — Salve configurações de servidor nomeadas com tipo de engine. Alterne entre ambientes com `-s pg16`.
|
|
127
|
-
- **🎯 Resolução Inteligente de Conexão e Engine** — Flags CLI explícitas → perfis → padrões salvos → auto-descoberta. Sempre previsível.
|
|
128
|
-
|
|
129
|
-
---
|
|
130
|
-
|
|
131
|
-
## 💡 Filosofia
|
|
132
|
-
|
|
133
|
-
**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.
|
|
134
|
-
|
|
135
|
-
O **Herdux** segue três princípios:
|
|
136
|
-
|
|
137
|
-
- **Segurança primeiro** — Nunca apaga dados sem confirmação explícita ou um backup verificado.
|
|
138
|
-
- **Explícito sobre implícito** — A resolução de conexão e engine segue uma prioridade estrita e documentada. Sem mágica.
|
|
139
|
-
- **Otimização de workflow** — Cada comando é projetado para te salvar de tarefas repetitivas no terminal.
|
|
140
|
-
|
|
141
|
-
---
|
|
142
|
-
|
|
143
|
-
## 🔒 Segurança
|
|
144
|
-
|
|
145
|
-
O **Herdux** trata operações destrutivas com cuidado:
|
|
146
|
-
|
|
147
|
-
- **Nunca dropa um banco** sem confirmação explícita
|
|
148
|
-
- **Aborta toda a operação** se um backup de segurança falhar durante o `herdux clean`
|
|
149
|
-
- **Valida códigos de saída das ferramentas de backup** antes de considerar um backup bem-sucedido
|
|
150
|
-
- **Requer a flag `--drop`** intencionalmente — dropar nunca é o padrão
|
|
151
|
-
- **`--yes` deve ser combinado com `--drop`** — não é possível pular confirmação sozinho
|
|
152
|
-
|
|
153
|
-
> Se você solicitar um backup antes de dropar e esse backup falhar, o **Herdux** para imediatamente. Nenhum dado é perdido.
|
|
154
|
-
|
|
155
|
-
---
|
|
156
|
-
|
|
157
|
-
## 🧩 Requisitos
|
|
88
|
+
## Requisitos
|
|
158
89
|
|
|
159
90
|
- **Node.js** 18 ou superior
|
|
160
|
-
- **Para PostgreSQL:** `psql`, `pg_dump`, `pg_restore` instalados e
|
|
161
|
-
- **Para MySQL:** `mysql`, `mysqldump` instalados 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`
|
|
162
94
|
|
|
163
95
|
> [!TIP]
|
|
164
|
-
> 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.
|
|
165
97
|
|
|
166
98
|
---
|
|
167
99
|
|
|
168
|
-
##
|
|
100
|
+
## Instalação
|
|
169
101
|
|
|
170
102
|
**npm (recomendado):**
|
|
171
103
|
|
|
172
|
-
>
|
|
104
|
+
> **Importante:** Use a flag `-g` para que a CLI fique disponível em qualquer lugar no terminal.
|
|
173
105
|
|
|
174
106
|
```bash
|
|
175
107
|
npm install -g herdux-cli
|
|
@@ -187,9 +119,7 @@ npm link
|
|
|
187
119
|
|
|
188
120
|
---
|
|
189
121
|
|
|
190
|
-
##
|
|
191
|
-
|
|
192
|
-
Todos os comandos funcionam tanto com PostgreSQL quanto com MySQL. Use `--engine mysql` ou configure a engine no seu perfil de servidor.
|
|
122
|
+
## Comandos
|
|
193
123
|
|
|
194
124
|
### `herdux version`
|
|
195
125
|
|
|
@@ -202,11 +132,7 @@ herdux --engine mysql version
|
|
|
202
132
|
|
|
203
133
|
### `herdux doctor`
|
|
204
134
|
|
|
205
|
-
Executa uma verificação completa
|
|
206
|
-
|
|
207
|
-
- Verifica se as ferramentas cliente necessárias estão instaladas e acessíveis (específicas por engine)
|
|
208
|
-
- Tenta uma conexão real usando a configuração resolvida
|
|
209
|
-
- Testa autenticação contra o servidor alvo
|
|
135
|
+
Executa uma verificação completa do sistema: verifica ferramentas cliente, testa conectividade e valida autenticação.
|
|
210
136
|
|
|
211
137
|
```bash
|
|
212
138
|
herdux doctor
|
|
@@ -215,17 +141,17 @@ herdux --engine mysql doctor
|
|
|
215
141
|
|
|
216
142
|
---
|
|
217
143
|
|
|
218
|
-
###
|
|
144
|
+
### `herdux list`
|
|
219
145
|
|
|
220
146
|
Lista todos os bancos de dados no servidor conectado.
|
|
221
147
|
|
|
222
148
|
```bash
|
|
223
|
-
herdux list #
|
|
224
|
-
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
|
|
225
151
|
```
|
|
226
152
|
|
|
227
153
|
> [!NOTE]
|
|
228
|
-
> 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.
|
|
229
155
|
|
|
230
156
|
---
|
|
231
157
|
|
|
@@ -234,8 +160,8 @@ herdux ls --size # Inclui tamanho em disco, ordenado do maior → menor
|
|
|
234
160
|
Cria um novo banco de dados.
|
|
235
161
|
|
|
236
162
|
```bash
|
|
237
|
-
herdux create
|
|
238
|
-
herdux --engine mysql create
|
|
163
|
+
herdux create meu_novo_banco
|
|
164
|
+
herdux --engine mysql create meu_novo_banco
|
|
239
165
|
```
|
|
240
166
|
|
|
241
167
|
### `herdux drop <nome>`
|
|
@@ -243,209 +169,188 @@ herdux --engine mysql create meu_novo_db
|
|
|
243
169
|
Remove um banco de dados com confirmação interativa.
|
|
244
170
|
|
|
245
171
|
```bash
|
|
246
|
-
herdux drop
|
|
172
|
+
herdux drop banco_antigo
|
|
247
173
|
```
|
|
248
174
|
|
|
249
175
|
---
|
|
250
176
|
|
|
251
|
-
###
|
|
252
|
-
|
|
253
|
-
Trabalhando com bancos de desenvolvimento cheios de seeds? Precisa recuperar espaço em disco rápido?
|
|
177
|
+
### `herdux clean`
|
|
254
178
|
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
- **Multi-seleção** de bancos a partir de uma interface interativa com checkboxes
|
|
258
|
-
- **Gerar backups de segurança opcionais** antes de qualquer ação destrutiva
|
|
259
|
-
- **Batch-drop** de todos os bancos selecionados com segurança
|
|
260
|
-
- **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.
|
|
261
180
|
|
|
262
181
|
```bash
|
|
263
182
|
herdux clean
|
|
264
183
|
```
|
|
265
184
|
|
|
266
|
-
|
|
185
|
+
Aborta imediatamente se algum backup de segurança falhar. Nenhum dado é removido sem um backup confirmado.
|
|
267
186
|
|
|
268
187
|
---
|
|
269
188
|
|
|
270
|
-
###
|
|
189
|
+
### `herdux backup <database>`
|
|
271
190
|
|
|
272
|
-
|
|
191
|
+
Cria um backup com timestamp em `~/.herdux/backups/` por padrão.
|
|
273
192
|
|
|
274
193
|
```bash
|
|
275
|
-
herdux backup mydb # Formato
|
|
194
|
+
herdux backup mydb # Formato nativo da engine (.dump para PG, .db para SQLite, .sql para MySQL)
|
|
276
195
|
herdux backup mydb --format plain # SQL puro (.sql)
|
|
277
|
-
herdux backup mydb --drop # Backup
|
|
278
|
-
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
|
|
279
198
|
herdux backup mydb -o ./meus-backups # Diretório de saída personalizado
|
|
280
199
|
```
|
|
281
200
|
|
|
282
201
|
| Opção | Descrição |
|
|
283
202
|
| --------------------- | ---------------------------------------------------------- |
|
|
284
|
-
| `-F, --format <tipo>` | `custom` (padrão,
|
|
285
|
-
| `-d, --drop` | Pergunta se
|
|
286
|
-
| `-y, --yes` | Pula confirmação
|
|
287
|
-
| `-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`) |
|
|
288
207
|
|
|
289
208
|
---
|
|
290
209
|
|
|
291
|
-
###
|
|
292
|
-
|
|
293
|
-
Restaura um banco de dados a partir de um arquivo de backup. Detecta automaticamente o formato:
|
|
210
|
+
### `herdux restore <arquivo>`
|
|
294
211
|
|
|
295
|
-
|
|
296
|
-
- `.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.
|
|
297
213
|
|
|
298
214
|
```bash
|
|
299
215
|
herdux restore ./backups/mydb_2026-02-23.dump --db mydb
|
|
300
216
|
herdux restore ./exports/data.sql --db mydb
|
|
217
|
+
herdux restore archive.bkp --db mydb --format custom # Forçar formato
|
|
301
218
|
```
|
|
302
219
|
|
|
303
|
-
|
|
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`) |
|
|
304
236
|
|
|
305
237
|
```bash
|
|
306
|
-
|
|
307
|
-
|
|
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
|
|
308
241
|
```
|
|
309
242
|
|
|
310
|
-
|
|
311
|
-
|
|
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
|
+
```
|
|
312
256
|
|
|
313
257
|
---
|
|
314
258
|
|
|
315
|
-
##
|
|
259
|
+
## Configuração e Perfis de Servidor
|
|
316
260
|
|
|
317
|
-
|
|
261
|
+
A configuração é armazenada em `~/.herdux/config.json`.
|
|
318
262
|
|
|
319
|
-
###
|
|
263
|
+
### Valores globais padrão
|
|
320
264
|
|
|
321
265
|
```bash
|
|
322
|
-
herdux config set engine postgres
|
|
266
|
+
herdux config set engine postgres
|
|
323
267
|
herdux config set user postgres
|
|
324
268
|
herdux config set password minha_senha
|
|
325
269
|
herdux config set port 5432
|
|
326
270
|
```
|
|
327
271
|
|
|
328
|
-
### Perfis de
|
|
329
|
-
|
|
330
|
-
Gerencie múltiplas instâncias de banco de dados sem esforço:
|
|
272
|
+
### Perfis de servidor nomeados
|
|
331
273
|
|
|
332
274
|
```bash
|
|
333
|
-
# Perfis PostgreSQL
|
|
334
275
|
herdux config add pg16 --port 5416
|
|
335
276
|
herdux config add pg17 --port 5417 --user admin
|
|
336
|
-
|
|
337
|
-
# Perfis MySQL (a engine é salva no perfil)
|
|
338
277
|
herdux config add mysql-dev --port 3306 --user root --password secret --engine mysql
|
|
339
|
-
|
|
340
|
-
# Servidores remotos
|
|
341
278
|
herdux config add staging --host 192.168.0.10 --port 5432
|
|
342
279
|
```
|
|
343
280
|
|
|
344
|
-
|
|
281
|
+
Use perfis com a flag `-s`:
|
|
345
282
|
|
|
346
283
|
```bash
|
|
347
284
|
herdux list -s pg16
|
|
348
285
|
herdux backup mydb -s mysql-dev
|
|
349
286
|
```
|
|
350
287
|
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
### Visualizar & Gerenciar Config
|
|
288
|
+
### Gerenciar configuração
|
|
354
289
|
|
|
355
290
|
```bash
|
|
356
|
-
herdux config list #
|
|
357
|
-
herdux config get port #
|
|
358
|
-
herdux config rm pg16 #
|
|
359
|
-
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
|
|
360
295
|
```
|
|
361
296
|
|
|
362
297
|
---
|
|
363
298
|
|
|
364
|
-
##
|
|
365
|
-
|
|
366
|
-
Ao resolver como se conectar e qual engine usar, o **Herdux** segue uma ordem de prioridade estrita e previsível:
|
|
367
|
-
|
|
368
|
-
### Prioridade da Engine
|
|
369
|
-
|
|
370
|
-
| Prioridade | Fonte | Exemplo |
|
|
371
|
-
| ---------- | ---------------- | -------------------------------- |
|
|
372
|
-
| 1️⃣ | **Flag CLI** | `herdux --engine mysql list` |
|
|
373
|
-
| 2️⃣ | **Perfil** | Campo `engine` do perfil |
|
|
374
|
-
| 3️⃣ | **Padrão salvo** | `herdux config set engine mysql` |
|
|
375
|
-
| 4️⃣ | **Fallback** | `postgres` |
|
|
376
|
-
|
|
377
|
-
### Prioridade da Conexão
|
|
378
|
-
|
|
379
|
-
| Prioridade | Fonte | Exemplo |
|
|
380
|
-
| ---------- | ---------------------- | ------------------------------------------------------- |
|
|
381
|
-
| 1️⃣ | **Flags CLI** | `herdux list --port 5417` |
|
|
382
|
-
| 2️⃣ | **Perfil de servidor** | `herdux list -s pg16` |
|
|
383
|
-
| 3️⃣ | **Padrões salvos** | `herdux config set port 5432` |
|
|
384
|
-
| 4️⃣ | **Auto-descoberta** | Escaneia portas comuns; pergunta se encontrar múltiplas |
|
|
385
|
-
|
|
386
|
-
Isso significa que a entrada explícita sempre vence. Sem surpresas.
|
|
387
|
-
|
|
388
|
-
---
|
|
389
|
-
|
|
390
|
-
## 🤔 Por que não pgAdmin / phpMyAdmin?
|
|
391
|
-
|
|
392
|
-
O **Herdux** não é um substituto de GUI.
|
|
393
|
-
É um acelerador de workflow para desenvolvedores que vivem no terminal.
|
|
394
|
-
|
|
395
|
-
Sem GUI. Sem overhead. Só velocidade.
|
|
396
|
-
|
|
397
|
-
---
|
|
398
|
-
|
|
399
|
-
## 🧠 Princípios de Design
|
|
299
|
+
## Resolução de Conexão e Engine
|
|
400
300
|
|
|
401
|
-
|
|
402
|
-
- Sem mágicas destrutivas.
|
|
403
|
-
- Resolução determinística de conexão e engine.
|
|
404
|
-
- Comandos explícitos e combináveis.
|
|
405
|
-
- Engine-agnostic: mesma interface, qualquer banco de dados.
|
|
301
|
+
O Herdux segue uma prioridade estrita e previsível ao resolver como se conectar.
|
|
406
302
|
|
|
407
|
-
|
|
303
|
+
**Prioridade de engine:**
|
|
408
304
|
|
|
409
|
-
|
|
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` |
|
|
410
311
|
|
|
411
|
-
|
|
312
|
+
**Prioridade de conexão:**
|
|
412
313
|
|
|
413
|
-
|
|
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 |
|
|
414
320
|
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
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.
|
|
418
322
|
|
|
419
323
|
---
|
|
420
324
|
|
|
421
|
-
##
|
|
422
|
-
|
|
423
|
-
PRs são bem-vindas! Por favor, abra uma issue primeiro para discutir mudanças significativas.
|
|
325
|
+
## Contribuindo
|
|
424
326
|
|
|
425
327
|
```bash
|
|
426
328
|
git clone https://github.com/herdux/herdux-cli.git
|
|
427
329
|
cd herdux-cli
|
|
428
330
|
npm install
|
|
429
|
-
npm run dev
|
|
430
331
|
|
|
431
|
-
#
|
|
432
|
-
npm run test:
|
|
433
|
-
#
|
|
434
|
-
npm run test:e2e:
|
|
435
|
-
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)
|
|
436
337
|
```
|
|
437
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
|
+
|
|
438
343
|
---
|
|
439
344
|
|
|
440
|
-
##
|
|
345
|
+
## Suporte
|
|
441
346
|
|
|
442
|
-
Se o
|
|
347
|
+
Se o Herdux te salvou horas de debugging e trabalho com bancos de dados, considere apoiar o projeto:
|
|
443
348
|
|
|
444
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>
|
|
445
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>
|
|
446
351
|
|
|
447
352
|
---
|
|
448
353
|
|
|
449
|
-
##
|
|
354
|
+
## Licença
|
|
450
355
|
|
|
451
356
|
MIT
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backup.d.ts","sourceRoot":"","sources":["../../src/commands/backup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"backup.d.ts","sourceRoot":"","sources":["../../src/commands/backup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+G5D"}
|
package/dist/commands/backup.js
CHANGED
|
@@ -8,12 +8,23 @@ import { homedir } from "os";
|
|
|
8
8
|
export function registerBackupCommand(program) {
|
|
9
9
|
program
|
|
10
10
|
.command("backup <database>")
|
|
11
|
-
.description("Create a backup of a database")
|
|
11
|
+
.description("Create a backup of a database to a local file")
|
|
12
|
+
.addHelpText("after", `
|
|
13
|
+
Examples:
|
|
14
|
+
hdx backup mydb
|
|
15
|
+
hdx backup mydb --output /tmp/backups
|
|
16
|
+
hdx backup mydb --format plain
|
|
17
|
+
hdx backup mydb --drop --yes # Backup then drop without confirmation
|
|
18
|
+
hdx backup mydb --engine mysql`)
|
|
12
19
|
.option("-o, --output <dir>", "Output directory for the backup (overrides global config)")
|
|
13
20
|
.option("-d, --drop", "Ask to drop the database after a successful backup")
|
|
14
21
|
.option("-y, --yes", "Skip confirmation when dropping (requires --drop)")
|
|
15
22
|
.option("-F, --format <type>", "Backup format format (custom, plain)", "custom")
|
|
16
23
|
.action(async (database, cmdOpts) => {
|
|
24
|
+
if (/[\s;|&`$<>(){}\\]/.test(database)) {
|
|
25
|
+
console.error(chalk.red(`\n✖ Invalid database name "${database}". Avoid spaces and special characters (; | & \` $ < > ( ) { } \\).\n`));
|
|
26
|
+
process.exit(1);
|
|
27
|
+
}
|
|
17
28
|
try {
|
|
18
29
|
const rawOpts = program.opts();
|
|
19
30
|
const { engine, opts } = await resolveEngineAndConnection(rawOpts);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backup.js","sourceRoot":"","sources":["../../src/commands/backup.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,KAAK,MAAM,MAAM,mCAAmC,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAE7B,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,OAAO;SACJ,OAAO,CAAC,mBAAmB,CAAC;SAC5B,WAAW,CAAC,+
|
|
1
|
+
{"version":3,"file":"backup.js","sourceRoot":"","sources":["../../src/commands/backup.ts"],"names":[],"mappings":"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"}
|
|
@@ -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,12 +3,21 @@ 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) {
|
|
9
10
|
program
|
|
10
11
|
.command("clean")
|
|
11
|
-
.description("
|
|
12
|
+
.description("Interactively select and drop multiple databases at once")
|
|
13
|
+
.addHelpText("after", `
|
|
14
|
+
Examples:
|
|
15
|
+
hdx clean
|
|
16
|
+
hdx clean --engine mysql
|
|
17
|
+
hdx clean --host 192.168.1.1 --user admin
|
|
18
|
+
|
|
19
|
+
Note: You will be prompted to select databases, optionally backup them first,
|
|
20
|
+
and confirm before any data is deleted.`)
|
|
12
21
|
.action(async () => {
|
|
13
22
|
try {
|
|
14
23
|
const rawOpts = program.opts();
|
|
@@ -87,7 +96,8 @@ export function registerCleanCommand(program) {
|
|
|
87
96
|
console.error(chalk.red(` ↳ ${message}`));
|
|
88
97
|
}
|
|
89
98
|
}
|
|
90
|
-
|
|
99
|
+
logger.blank();
|
|
100
|
+
logger.success("Clean operation completed.");
|
|
91
101
|
}
|
|
92
102
|
catch (err) {
|
|
93
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":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwM5D"}
|