@codemastersolutions/db-utility 0.0.3 → 0.0.5
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.es.md +138 -39
- package/README.md +138 -39
- package/README.pt-BR.md +144 -39
- package/dist/cli/helpers.d.ts +3 -0
- package/dist/cli/helpers.d.ts.map +1 -0
- package/dist/cli/helpers.js +15 -0
- package/dist/cli/helpers.js.map +1 -0
- package/dist/cli/index.js +11 -4
- package/dist/cli/index.js.map +1 -1
- package/dist/config/ConfigInitializer.d.ts.map +1 -1
- package/dist/config/ConfigInitializer.js +29 -0
- package/dist/config/ConfigInitializer.js.map +1 -1
- package/dist/config/ConfigLoader.d.ts +3 -3
- package/dist/config/ConfigLoader.d.ts.map +1 -1
- package/dist/config/ConfigLoader.js +45 -30
- package/dist/config/ConfigLoader.js.map +1 -1
- package/dist/errors/DbUtilityError.d.ts +1 -1
- package/dist/errors/DbUtilityError.d.ts.map +1 -1
- package/dist/errors/DbUtilityError.js.map +1 -1
- package/dist/i18n/messages.d.ts +2 -0
- package/dist/i18n/messages.d.ts.map +1 -1
- package/dist/i18n/messages.js +6 -0
- package/dist/i18n/messages.js.map +1 -1
- package/package.json +1 -1
package/README.es.md
CHANGED
|
@@ -45,7 +45,7 @@ dbutility --init --force
|
|
|
45
45
|
|
|
46
46
|
### Archivo de Configuración (dbutility.config.json)
|
|
47
47
|
|
|
48
|
-
El archivo de configuración permite definir el idioma de la CLI, directorios de salida y
|
|
48
|
+
El archivo de configuración permite definir el idioma de la CLI, directorios de salida, patrones de nombres y configuraciones de conexión a la base de datos.
|
|
49
49
|
|
|
50
50
|
```json
|
|
51
51
|
{
|
|
@@ -56,13 +56,60 @@ El archivo de configuración permite definir el idioma de la CLI, directorios de
|
|
|
56
56
|
"migrations": {
|
|
57
57
|
"outputDir": "db-utility-migrations",
|
|
58
58
|
"fileNamePattern": "timestamp-prefix"
|
|
59
|
+
},
|
|
60
|
+
"connection": {
|
|
61
|
+
"type": "postgres",
|
|
62
|
+
"host": "localhost",
|
|
63
|
+
"port": 5432,
|
|
64
|
+
"username": "usuario",
|
|
65
|
+
"password": "password",
|
|
66
|
+
"database": "mibasedatos",
|
|
67
|
+
"ssl": false
|
|
68
|
+
},
|
|
69
|
+
"connections": {
|
|
70
|
+
"desarrollo": {
|
|
71
|
+
"type": "mysql",
|
|
72
|
+
"host": "localhost",
|
|
73
|
+
"port": 3306,
|
|
74
|
+
"username": "root",
|
|
75
|
+
"password": "password",
|
|
76
|
+
"database": "dev_db"
|
|
77
|
+
},
|
|
78
|
+
"produccion": {
|
|
79
|
+
"type": "postgres",
|
|
80
|
+
"host": "prod-db",
|
|
81
|
+
"port": 5432,
|
|
82
|
+
"username": "admin",
|
|
83
|
+
"password": "secure_password",
|
|
84
|
+
"database": "prod_db",
|
|
85
|
+
"ssl": true
|
|
86
|
+
}
|
|
59
87
|
}
|
|
60
88
|
}
|
|
61
89
|
```
|
|
62
90
|
|
|
91
|
+
### Múltiples Conexiones
|
|
92
|
+
|
|
93
|
+
Puede definir múltiples conexiones dentro de la propiedad `connections` y utilizarlas en la CLI con el flag `--conn <nombre>`.
|
|
94
|
+
|
|
95
|
+
Ejemplo:
|
|
96
|
+
```bash
|
|
97
|
+
dbutility connect --conn desarrollo
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### Prioridad de Configuración
|
|
101
|
+
|
|
102
|
+
La configuración se carga con el siguiente orden de prioridad (la prioridad más alta sobrescribe la más baja):
|
|
103
|
+
|
|
104
|
+
1. **Flags de la CLI**: Argumentos pasados directamente al comando (ej: `-u usuario`).
|
|
105
|
+
2. **Archivo de Configuración**: Configuraciones en `dbutility.config.json`.
|
|
106
|
+
3. **Variables de Entorno**: Variables definidas en `.env`.
|
|
107
|
+
|
|
108
|
+
Esto permite tener configuraciones base en `.env`, configuraciones específicas del proyecto en `dbutility.config.json` y sobrescribir valores específicos (como la contraseña) a través de la CLI cuando sea necesario.
|
|
109
|
+
|
|
63
110
|
### Variables de Entorno (.env)
|
|
64
111
|
|
|
65
|
-
También puede configurar DbUtility utilizando variables de entorno.
|
|
112
|
+
También puede configurar DbUtility utilizando variables de entorno.
|
|
66
113
|
|
|
67
114
|
```env
|
|
68
115
|
# Idioma (pt-BR, en, es)
|
|
@@ -74,79 +121,131 @@ DB_UTILITY_MIGRATIONS_OUTPUT_DIR=mi-directorio-migrations
|
|
|
74
121
|
|
|
75
122
|
# Patrón de Nombre de Archivo de Migración (timestamp-prefix, prefix-timestamp)
|
|
76
123
|
DB_UTILITY_MIGRATIONS_FILE_NAME_PATTERN=prefix-timestamp
|
|
124
|
+
|
|
125
|
+
# Conexión a Base de Datos (Fallback/Base)
|
|
126
|
+
DB_TYPE=postgres
|
|
127
|
+
DB_HOST=localhost
|
|
128
|
+
DB_PORT=5432
|
|
129
|
+
DB_USER=usuario
|
|
130
|
+
DB_PASSWORD=password
|
|
131
|
+
DB_NAME=mibasedatos
|
|
77
132
|
```
|
|
78
133
|
|
|
79
|
-
##
|
|
134
|
+
## Comandos y Flags de la CLI
|
|
80
135
|
|
|
81
136
|
> **Nota de Seguridad**: Recomendamos encarecidamente utilizar un usuario de base de datos con permisos de **solo lectura** (SELECT) para realizar operaciones de introspección y exportación. Esto minimiza el riesgo de modificaciones accidentales de datos. La biblioteca DbUtility solo ejecuta consultas de metadatos (estructura de la base de datos) y bloquea comandos que puedan modificar datos o leer filas de tablas de negocio.
|
|
82
137
|
|
|
83
|
-
|
|
138
|
+
### Opciones Globales
|
|
139
|
+
|
|
140
|
+
| Flag | Descripción |
|
|
141
|
+
|------|-------------|
|
|
142
|
+
| `--init` | Inicializa el archivo de configuración |
|
|
143
|
+
| `-f, --force` | Fuerza la recreación del archivo de configuración si ya existe |
|
|
144
|
+
| `-v, --version` | Muestra el número de la versión |
|
|
145
|
+
| `-h, --help` | Muestra ayuda para el comando |
|
|
146
|
+
|
|
147
|
+
### Opciones de Conexión (Disponibles para `connect`, `introspect`, `export`, `migrate`)
|
|
148
|
+
|
|
149
|
+
| Flag | Descripción |
|
|
150
|
+
|------|-------------|
|
|
151
|
+
| `--conn <name>` | Nombre de la conexión definida en el archivo de configuración |
|
|
152
|
+
| `-c, --config <path>` | Ruta al archivo de configuración |
|
|
153
|
+
| `-t, --type <type>` | Tipo de base de datos (`mysql`, `postgres`, `mssql`) |
|
|
154
|
+
| `-H, --host <host>` | Host de la base de datos |
|
|
155
|
+
| `-P, --port <port>` | Puerto de la base de datos |
|
|
156
|
+
| `-u, --username <username>` | Usuario de la base de datos |
|
|
157
|
+
| `-p, --password <password>` | Contraseña de la base de datos |
|
|
158
|
+
| `-d, --database <database>` | Nombre de la base de datos |
|
|
159
|
+
| `--ssl` | Habilita conexión SSL |
|
|
84
160
|
|
|
85
|
-
###
|
|
161
|
+
### Comandos
|
|
86
162
|
|
|
87
|
-
|
|
163
|
+
#### `connect`
|
|
164
|
+
|
|
165
|
+
Prueba la conexión con la base de datos.
|
|
88
166
|
|
|
89
167
|
```bash
|
|
90
|
-
dbutility connect -
|
|
168
|
+
dbutility connect [opciones-conexión]
|
|
91
169
|
```
|
|
92
170
|
|
|
93
|
-
|
|
171
|
+
#### `introspect`
|
|
94
172
|
|
|
95
|
-
|
|
173
|
+
Realiza introspección en el esquema de la base de datos.
|
|
96
174
|
|
|
97
175
|
```bash
|
|
98
|
-
dbutility introspect -
|
|
176
|
+
dbutility introspect [opciones-conexión]
|
|
99
177
|
```
|
|
100
178
|
|
|
101
|
-
|
|
179
|
+
#### `export`
|
|
102
180
|
|
|
103
|
-
|
|
181
|
+
Exporta modelos para el ORM objetivo.
|
|
104
182
|
|
|
105
183
|
```bash
|
|
106
|
-
dbutility export --target
|
|
184
|
+
dbutility export --target <orm> [opciones] [opciones-conexión]
|
|
107
185
|
```
|
|
108
186
|
|
|
109
|
-
|
|
187
|
+
| Flag | Descripción | Obligatorio |
|
|
188
|
+
|------|-------------|-------------|
|
|
189
|
+
| `--target <target>` | ORM objetivo (`sequelize`, `typeorm`, `prisma`, `mongoose`) | Sí |
|
|
190
|
+
| `--output <dir>` | Directorio de salida | No |
|
|
191
|
+
|
|
192
|
+
#### `migrations`
|
|
110
193
|
|
|
111
|
-
|
|
194
|
+
Genera migraciones a partir del esquema de la base de datos.
|
|
112
195
|
|
|
113
196
|
```bash
|
|
114
|
-
dbutility
|
|
197
|
+
dbutility migrations --target <orm> [opciones] [opciones-conexión]
|
|
115
198
|
```
|
|
116
199
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
200
|
+
| Flag | Descripción | Obligatorio |
|
|
201
|
+
|------|-------------|-------------|
|
|
202
|
+
| `--target <target>` | ORM objetivo (`sequelize`, `typeorm`) | Sí |
|
|
203
|
+
| `--output <dir>` | Directorio de salida | No |
|
|
204
|
+
| `--data` | Genera migración de datos (seeds) junto con el esquema | No |
|
|
205
|
+
| `--only-data` | Genera SOLO migración de datos | No |
|
|
206
|
+
| `--tables <tables>` | Lista de tablas separadas por coma para exportación de datos | Sí (si `--data` o `--only-data`) |
|
|
121
207
|
|
|
122
|
-
|
|
208
|
+
#### `test`
|
|
123
209
|
|
|
124
|
-
|
|
210
|
+
Prueba migraciones generadas en contenedores Docker.
|
|
125
211
|
|
|
126
|
-
|
|
212
|
+
```bash
|
|
213
|
+
dbutility test --target <orm> [opciones]
|
|
214
|
+
```
|
|
127
215
|
|
|
216
|
+
| Flag | Descripción | Obligatorio |
|
|
217
|
+
|------|-------------|-------------|
|
|
218
|
+
| `--target <target>` | ORM objetivo (`sequelize`, `typeorm`) | Sí |
|
|
219
|
+
| `--dir <dir>` | Directorio conteniendo las migraciones | No |
|
|
220
|
+
| `--engines <engines>` | Imágenes Docker para probar (ej: `postgres:14,mysql:8`) | No |
|
|
221
|
+
| `--backup` | Exporta backup de la base de datos del contenedor después de la prueba | No |
|
|
222
|
+
|
|
223
|
+
## Ejemplos de Uso
|
|
224
|
+
|
|
225
|
+
### Conectar a una base de datos usando una conexión con nombre
|
|
128
226
|
```bash
|
|
129
|
-
dbutility
|
|
227
|
+
dbutility connect --conn produccion
|
|
130
228
|
```
|
|
131
229
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
230
|
+
### Realizar introspección de una base de datos usando parámetros de conexión en línea
|
|
231
|
+
```bash
|
|
232
|
+
dbutility introspect --type postgres --host localhost --username usuario --password contrasena --database mibasedatos
|
|
233
|
+
```
|
|
136
234
|
|
|
137
|
-
|
|
138
|
-
|
|
235
|
+
### Exportar modelos de Sequelize desde una conexión específica
|
|
236
|
+
```bash
|
|
237
|
+
dbutility export --target sequelize --conn desarrollo --output ./src/models
|
|
238
|
+
```
|
|
139
239
|
|
|
140
|
-
###
|
|
240
|
+
### Generar migraciones de TypeORM desde una conexión específica
|
|
241
|
+
```bash
|
|
242
|
+
dbutility migrations --target typeorm --conn produccion
|
|
243
|
+
```
|
|
141
244
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
- `-p, --password <password>`: Contraseña de la base de datos
|
|
147
|
-
- `-d, --database <database>`: Nombre de la base de datos
|
|
148
|
-
- `--ssl`: Habilitar SSL (opcional)
|
|
149
|
-
- `-c, --config <path>`: Ruta a un archivo de configuración específico
|
|
245
|
+
### Generar Migraciones de Datos (Seeds)
|
|
246
|
+
```bash
|
|
247
|
+
dbutility migrations --target sequelize --conn desarrollo --data --tables "usuarios,roles"
|
|
248
|
+
```
|
|
150
249
|
|
|
151
250
|
## Licencia
|
|
152
251
|
|
package/README.md
CHANGED
|
@@ -45,7 +45,7 @@ dbutility --init --force
|
|
|
45
45
|
|
|
46
46
|
### Configuration File (dbutility.config.json)
|
|
47
47
|
|
|
48
|
-
The configuration file allows you to define CLI language, output directories, and
|
|
48
|
+
The configuration file allows you to define CLI language, output directories, naming patterns, and database connection settings.
|
|
49
49
|
|
|
50
50
|
```json
|
|
51
51
|
{
|
|
@@ -56,13 +56,60 @@ The configuration file allows you to define CLI language, output directories, an
|
|
|
56
56
|
"migrations": {
|
|
57
57
|
"outputDir": "db-utility-migrations",
|
|
58
58
|
"fileNamePattern": "timestamp-prefix"
|
|
59
|
+
},
|
|
60
|
+
"connection": {
|
|
61
|
+
"type": "postgres",
|
|
62
|
+
"host": "localhost",
|
|
63
|
+
"port": 5432,
|
|
64
|
+
"username": "myuser",
|
|
65
|
+
"password": "mypassword",
|
|
66
|
+
"database": "mydb",
|
|
67
|
+
"ssl": false
|
|
68
|
+
},
|
|
69
|
+
"connections": {
|
|
70
|
+
"development": {
|
|
71
|
+
"type": "mysql",
|
|
72
|
+
"host": "localhost",
|
|
73
|
+
"port": 3306,
|
|
74
|
+
"username": "root",
|
|
75
|
+
"password": "password",
|
|
76
|
+
"database": "dev_db"
|
|
77
|
+
},
|
|
78
|
+
"production": {
|
|
79
|
+
"type": "postgres",
|
|
80
|
+
"host": "prod-db",
|
|
81
|
+
"port": 5432,
|
|
82
|
+
"username": "admin",
|
|
83
|
+
"password": "secure_password",
|
|
84
|
+
"database": "prod_db",
|
|
85
|
+
"ssl": true
|
|
86
|
+
}
|
|
59
87
|
}
|
|
60
88
|
}
|
|
61
89
|
```
|
|
62
90
|
|
|
91
|
+
### Multiple Connections
|
|
92
|
+
|
|
93
|
+
You can define multiple connections within the `connections` property and use them in the CLI with the `--conn <name>` flag.
|
|
94
|
+
|
|
95
|
+
Example:
|
|
96
|
+
```bash
|
|
97
|
+
dbutility connect --conn development
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### Configuration Priority
|
|
101
|
+
|
|
102
|
+
The configuration is loaded with the following priority order (higher priority overrides lower):
|
|
103
|
+
|
|
104
|
+
1. **CLI Flags**: Arguments passed directly to the command (e.g., `-u user`).
|
|
105
|
+
2. **Configuration File**: Settings in `dbutility.config.json`.
|
|
106
|
+
3. **Environment Variables**: Variables defined in `.env`.
|
|
107
|
+
|
|
108
|
+
This allows you to have base settings in `.env`, project-specific settings in `dbutility.config.json`, and override specific values (like password) via CLI when needed.
|
|
109
|
+
|
|
63
110
|
### Environment Variables (.env)
|
|
64
111
|
|
|
65
|
-
You can also configure DbUtility using environment variables.
|
|
112
|
+
You can also configure DbUtility using environment variables.
|
|
66
113
|
|
|
67
114
|
```env
|
|
68
115
|
# Language (pt-BR, en, es)
|
|
@@ -74,79 +121,131 @@ DB_UTILITY_MIGRATIONS_OUTPUT_DIR=my-migrations-dir
|
|
|
74
121
|
|
|
75
122
|
# Migration File Name Pattern (timestamp-prefix, prefix-timestamp)
|
|
76
123
|
DB_UTILITY_MIGRATIONS_FILE_NAME_PATTERN=prefix-timestamp
|
|
124
|
+
|
|
125
|
+
# Database Connection (Fallback/Base)
|
|
126
|
+
DB_TYPE=postgres
|
|
127
|
+
DB_HOST=localhost
|
|
128
|
+
DB_PORT=5432
|
|
129
|
+
DB_USER=myuser
|
|
130
|
+
DB_PASSWORD=mypassword
|
|
131
|
+
DB_NAME=mydb
|
|
77
132
|
```
|
|
78
133
|
|
|
79
|
-
## CLI
|
|
134
|
+
## CLI Commands & Flags
|
|
80
135
|
|
|
81
136
|
> **Security Note**: We strongly recommend using a database user with **read-only** permissions (SELECT) when performing introspection and export operations. This minimizes the risk of accidental data modifications. The DbUtility library only executes metadata queries (database structure) and blocks commands that could modify data or read business table rows.
|
|
82
137
|
|
|
83
|
-
|
|
138
|
+
### Global Options
|
|
139
|
+
|
|
140
|
+
| Flag | Description |
|
|
141
|
+
| --------------- | --------------------------------------------------- |
|
|
142
|
+
| `--init` | Initialize configuration file |
|
|
143
|
+
| `-f, --force` | Force recreation of configuration file if it exists |
|
|
144
|
+
| `-v, --version` | Output the version number |
|
|
145
|
+
| `-h, --help` | Display help for command |
|
|
146
|
+
|
|
147
|
+
### Connection Options (Available for `connect`, `introspect`, `export`, `migrate`)
|
|
148
|
+
|
|
149
|
+
| Flag | Description |
|
|
150
|
+
| --------------------------- | -------------------------------------------- |
|
|
151
|
+
| `--conn <name>` | Connection name defined in configuration file|
|
|
152
|
+
| `-c, --config <path>` | Path to configuration file |
|
|
153
|
+
| `-t, --type <type>` | Database type (`mysql`, `postgres`, `mssql`) |
|
|
154
|
+
| `-H, --host <host>` | Database host |
|
|
155
|
+
| `-P, --port <port>` | Database port |
|
|
156
|
+
| `-u, --username <username>` | Database username |
|
|
157
|
+
| `-p, --password <password>` | Database password |
|
|
158
|
+
| `-d, --database <database>` | Database name |
|
|
159
|
+
| `--ssl` | Enable SSL connection |
|
|
84
160
|
|
|
85
|
-
###
|
|
161
|
+
### Commands
|
|
86
162
|
|
|
87
|
-
|
|
163
|
+
#### `connect`
|
|
164
|
+
|
|
165
|
+
Test database connection.
|
|
88
166
|
|
|
89
167
|
```bash
|
|
90
|
-
dbutility connect -
|
|
168
|
+
dbutility connect [connection-options]
|
|
91
169
|
```
|
|
92
170
|
|
|
93
|
-
|
|
171
|
+
#### `introspect`
|
|
94
172
|
|
|
95
|
-
|
|
173
|
+
Introspect database schema.
|
|
96
174
|
|
|
97
175
|
```bash
|
|
98
|
-
dbutility introspect -
|
|
176
|
+
dbutility introspect [connection-options]
|
|
99
177
|
```
|
|
100
178
|
|
|
101
|
-
|
|
179
|
+
#### `export`
|
|
102
180
|
|
|
103
|
-
Export
|
|
181
|
+
Export models for target ORM.
|
|
104
182
|
|
|
105
183
|
```bash
|
|
106
|
-
dbutility export --target
|
|
184
|
+
dbutility export --target <orm> [options] [connection-options]
|
|
107
185
|
```
|
|
108
186
|
|
|
109
|
-
|
|
187
|
+
| Flag | Description | Required |
|
|
188
|
+
| ------------------- | --------------------------------------------------------- | -------- |
|
|
189
|
+
| `--target <target>` | Target ORM (`sequelize`, `typeorm`, `prisma`, `mongoose`) | Yes |
|
|
190
|
+
| `--output <dir>` | Output directory | No |
|
|
191
|
+
|
|
192
|
+
#### `migrations`
|
|
110
193
|
|
|
111
|
-
Generate migrations from
|
|
194
|
+
Generate migrations from database schema.
|
|
112
195
|
|
|
113
196
|
```bash
|
|
114
|
-
dbutility
|
|
197
|
+
dbutility migrations --target <orm> [options] [connection-options]
|
|
115
198
|
```
|
|
116
199
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
200
|
+
| Flag | Description | Required |
|
|
201
|
+
| ------------------- | ------------------------------------------------- | ---------------------------------- |
|
|
202
|
+
| `--target <target>` | Target ORM (`sequelize`, `typeorm`) | Yes |
|
|
203
|
+
| `--output <dir>` | Output directory | No |
|
|
204
|
+
| `--data` | Generate data migration (seeds) along with schema | No |
|
|
205
|
+
| `--only-data` | Generate ONLY data migrations | No |
|
|
206
|
+
| `--tables <tables>` | Comma-separated list of tables for data export | Yes (if `--data` or `--only-data`) |
|
|
121
207
|
|
|
122
|
-
|
|
208
|
+
#### `test`
|
|
123
209
|
|
|
124
|
-
|
|
210
|
+
Test generated migrations in Docker containers.
|
|
125
211
|
|
|
126
|
-
|
|
212
|
+
```bash
|
|
213
|
+
dbutility test --target <orm> [options]
|
|
214
|
+
```
|
|
127
215
|
|
|
216
|
+
| Flag | Description | Required |
|
|
217
|
+
| --------------------- | --------------------------------------------------- | -------- |
|
|
218
|
+
| `--target <target>` | Target ORM (`sequelize`, `typeorm`) | Yes |
|
|
219
|
+
| `--dir <dir>` | Directory containing migrations | No |
|
|
220
|
+
| `--engines <engines>` | Docker images to test (e.g., `postgres:14,mysql:8`) | No |
|
|
221
|
+
| `--backup` | Export database backup from container after test | No |
|
|
222
|
+
|
|
223
|
+
## Usage Examples
|
|
224
|
+
|
|
225
|
+
### Connect to a database using a named connection
|
|
128
226
|
```bash
|
|
129
|
-
dbutility
|
|
227
|
+
dbutility connect --conn production
|
|
130
228
|
```
|
|
131
229
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
230
|
+
### Introspect a database using inline connection parameters
|
|
231
|
+
```bash
|
|
232
|
+
dbutility introspect --type postgres --host localhost --username myuser --password mypass --database mydb
|
|
233
|
+
```
|
|
136
234
|
|
|
137
|
-
|
|
138
|
-
|
|
235
|
+
### Export Sequelize models from a specific connection
|
|
236
|
+
```bash
|
|
237
|
+
dbutility export --target sequelize --conn development --output ./src/models
|
|
238
|
+
```
|
|
139
239
|
|
|
140
|
-
###
|
|
240
|
+
### Generate TypeORM migrations from a specific connection
|
|
241
|
+
```bash
|
|
242
|
+
dbutility migrations --target typeorm --conn production
|
|
243
|
+
```
|
|
141
244
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
- `-p, --password <password>`: Database password
|
|
147
|
-
- `-d, --database <database>`: Database name
|
|
148
|
-
- `--ssl`: Enable SSL (optional)
|
|
149
|
-
- `-c, --config <path>`: Path to a specific configuration file
|
|
245
|
+
### Generate Data Migrations (Seeds)
|
|
246
|
+
```bash
|
|
247
|
+
dbutility migrations --target sequelize --conn development --data --tables "users,roles"
|
|
248
|
+
```
|
|
150
249
|
|
|
151
250
|
## License
|
|
152
251
|
|
package/README.pt-BR.md
CHANGED
|
@@ -45,7 +45,7 @@ dbutility --init --force
|
|
|
45
45
|
|
|
46
46
|
### Arquivo de Configuração (dbutility.config.json)
|
|
47
47
|
|
|
48
|
-
O arquivo de configuração permite definir o idioma da CLI, diretórios de saída e
|
|
48
|
+
O arquivo de configuração permite definir o idioma da CLI, diretórios de saída, padrões de nomenclatura e configurações de conexão com o banco de dados.
|
|
49
49
|
|
|
50
50
|
```json
|
|
51
51
|
{
|
|
@@ -56,13 +56,61 @@ O arquivo de configuração permite definir o idioma da CLI, diretórios de saí
|
|
|
56
56
|
"migrations": {
|
|
57
57
|
"outputDir": "db-utility-migrations",
|
|
58
58
|
"fileNamePattern": "timestamp-prefix"
|
|
59
|
+
},
|
|
60
|
+
"connection": {
|
|
61
|
+
"type": "postgres",
|
|
62
|
+
"host": "localhost",
|
|
63
|
+
"port": 5432,
|
|
64
|
+
"username": "usuario",
|
|
65
|
+
"password": "senha",
|
|
66
|
+
"database": "meubanco",
|
|
67
|
+
"ssl": false
|
|
68
|
+
},
|
|
69
|
+
"connections": {
|
|
70
|
+
"desenvolvimento": {
|
|
71
|
+
"type": "mysql",
|
|
72
|
+
"host": "localhost",
|
|
73
|
+
"port": 3306,
|
|
74
|
+
"username": "root",
|
|
75
|
+
"password": "password",
|
|
76
|
+
"database": "dev_db"
|
|
77
|
+
},
|
|
78
|
+
"producao": {
|
|
79
|
+
"type": "postgres",
|
|
80
|
+
"host": "prod-db",
|
|
81
|
+
"port": 5432,
|
|
82
|
+
"username": "admin",
|
|
83
|
+
"password": "secure_password",
|
|
84
|
+
"database": "prod_db",
|
|
85
|
+
"ssl": true
|
|
86
|
+
}
|
|
59
87
|
}
|
|
60
88
|
}
|
|
61
89
|
```
|
|
62
90
|
|
|
91
|
+
### Múltiplas Conexões
|
|
92
|
+
|
|
93
|
+
Você pode definir múltiplas conexões dentro da propriedade `connections` e utilizá-las na CLI com a flag `--conn <nome>`.
|
|
94
|
+
|
|
95
|
+
Exemplo:
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
dbutility connect --conn desenvolvimento
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### Prioridade de Configuração
|
|
102
|
+
|
|
103
|
+
A configuração é carregada com a seguinte ordem de prioridade (prioridade mais alta sobrescreve a mais baixa):
|
|
104
|
+
|
|
105
|
+
1. **Flags da CLI**: Argumentos passados diretamente para o comando (ex: `-u usuario`).
|
|
106
|
+
2. **Arquivo de Configuração**: Configurações no `dbutility.config.json`.
|
|
107
|
+
3. **Variáveis de Ambiente**: Variáveis definidas no `.env`.
|
|
108
|
+
|
|
109
|
+
Isso permite ter configurações base no `.env`, configurações específicas do projeto no `dbutility.config.json` e sobrescrever valores específicos (como senha) via CLI quando necessário.
|
|
110
|
+
|
|
63
111
|
### Variáveis de Ambiente (.env)
|
|
64
112
|
|
|
65
|
-
Você também pode configurar o DbUtility usando variáveis de ambiente.
|
|
113
|
+
Você também pode configurar o DbUtility usando variáveis de ambiente.
|
|
66
114
|
|
|
67
115
|
```env
|
|
68
116
|
# Idioma (pt-BR, en, es)
|
|
@@ -74,79 +122,136 @@ DB_UTILITY_MIGRATIONS_OUTPUT_DIR=meu-diretorio-migrations
|
|
|
74
122
|
|
|
75
123
|
# Padrão de Nome de Arquivo de Migration (timestamp-prefix, prefix-timestamp)
|
|
76
124
|
DB_UTILITY_MIGRATIONS_FILE_NAME_PATTERN=prefix-timestamp
|
|
125
|
+
|
|
126
|
+
# Conexão com Banco de Dados (Fallback/Base)
|
|
127
|
+
DB_TYPE=postgres
|
|
128
|
+
DB_HOST=localhost
|
|
129
|
+
DB_PORT=5432
|
|
130
|
+
DB_USER=usuario
|
|
131
|
+
DB_PASSWORD=senha
|
|
132
|
+
DB_NAME=meubanco
|
|
77
133
|
```
|
|
78
134
|
|
|
79
|
-
##
|
|
135
|
+
## Comandos e Flags da CLI
|
|
80
136
|
|
|
81
137
|
> **Nota de Segurança**: Recomendamos fortemente o uso de um usuário de banco de dados com permissões de **somente leitura** (SELECT) para realizar operações de introspecção e exportação. Isso minimiza riscos de alterações acidentais nos dados. A biblioteca DbUtility executa apenas consultas de metadados (estrutura do banco) e bloqueia comandos que possam alterar dados ou ler registros das tabelas de negócio.
|
|
82
138
|
|
|
83
|
-
|
|
139
|
+
### Opções Globais
|
|
140
|
+
|
|
141
|
+
| Flag | Descrição |
|
|
142
|
+
| --------------- | ---------------------------------------------------------- |
|
|
143
|
+
| `--init` | Inicializa o arquivo de configuração |
|
|
144
|
+
| `-f, --force` | Força a recriação do arquivo de configuração se já existir |
|
|
145
|
+
| `-v, --version` | Exibe o número da versão |
|
|
146
|
+
| `-h, --help` | Exibe ajuda para o comando |
|
|
84
147
|
|
|
85
|
-
###
|
|
148
|
+
### Opções de Conexão (Disponíveis para `connect`, `introspect`, `export`, `migration`)
|
|
86
149
|
|
|
87
|
-
|
|
150
|
+
| Flag | Descrição |
|
|
151
|
+
| --------------------------- | ----------------------------------------------------- |
|
|
152
|
+
| `--conn <name>` | Nome da conexão definida no arquivo de configuração |
|
|
153
|
+
| `-c, --config <path>` | Caminho para o arquivo de configuração |
|
|
154
|
+
| `-t, --type <type>` | Tipo de banco de dados (`mysql`, `postgres`, `mssql`) |
|
|
155
|
+
| `-H, --host <host>` | Host do banco de dados |
|
|
156
|
+
| `-P, --port <port>` | Porta do banco de dados |
|
|
157
|
+
| `-u, --username <username>` | Usuário do banco de dados |
|
|
158
|
+
| `-p, --password <password>` | Senha do banco de dados |
|
|
159
|
+
| `-d, --database <database>` | Nome do banco de dados |
|
|
160
|
+
| `--ssl` | Habilita conexão SSL |
|
|
161
|
+
|
|
162
|
+
### Comandos
|
|
163
|
+
|
|
164
|
+
#### `connect`
|
|
165
|
+
|
|
166
|
+
Testa a conexão com o banco de dados.
|
|
88
167
|
|
|
89
168
|
```bash
|
|
90
|
-
dbutility connect -
|
|
169
|
+
dbutility connect [opções-conexão]
|
|
91
170
|
```
|
|
92
171
|
|
|
93
|
-
|
|
172
|
+
#### `introspect`
|
|
94
173
|
|
|
95
|
-
|
|
174
|
+
Faz introspecção no esquema do banco de dados.
|
|
96
175
|
|
|
97
176
|
```bash
|
|
98
|
-
dbutility introspect -
|
|
177
|
+
dbutility introspect [opções-conexão]
|
|
99
178
|
```
|
|
100
179
|
|
|
101
|
-
|
|
180
|
+
#### `export`
|
|
102
181
|
|
|
103
|
-
|
|
182
|
+
Exporta modelos para o ORM alvo.
|
|
104
183
|
|
|
105
184
|
```bash
|
|
106
|
-
dbutility export --target
|
|
185
|
+
dbutility export --target <orm> [opções] [opções-conexão]
|
|
107
186
|
```
|
|
108
187
|
|
|
109
|
-
|
|
188
|
+
| Flag | Descrição | Obrigatório |
|
|
189
|
+
| ------------------- | ------------------------------------------------------- | ----------- |
|
|
190
|
+
| `--target <target>` | ORM alvo (`sequelize`, `typeorm`, `prisma`, `mongoose`) | Sim |
|
|
191
|
+
| `--output <dir>` | Diretório de saída | Não |
|
|
192
|
+
|
|
193
|
+
#### `migrations`
|
|
110
194
|
|
|
111
|
-
|
|
195
|
+
Gera migrações a partir do esquema do banco de dados.
|
|
112
196
|
|
|
113
197
|
```bash
|
|
114
|
-
dbutility
|
|
198
|
+
dbutility migrations --target <orm> [opções] [opções-conexão]
|
|
115
199
|
```
|
|
116
200
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
201
|
+
| Flag | Descrição | Obrigatório |
|
|
202
|
+
| ------------------- | --------------------------------------------------------------- | ---------------------------------- |
|
|
203
|
+
| `--target <target>` | ORM alvo (`sequelize`, `typeorm`) | Sim |
|
|
204
|
+
| `--output <dir>` | Diretório de saída | Não |
|
|
205
|
+
| `--data` | Gera migração de dados (seeds) junto com o esquema | Não |
|
|
206
|
+
| `--only-data` | Gera APENAS migração de dados | Não |
|
|
207
|
+
| `--tables <tables>` | Lista de tabelas separadas por vírgula para exportação de dados | Sim (se `--data` ou `--only-data`) |
|
|
121
208
|
|
|
122
|
-
|
|
209
|
+
#### `test`
|
|
123
210
|
|
|
124
|
-
|
|
211
|
+
Testa migrações geradas em containers Docker.
|
|
125
212
|
|
|
126
|
-
|
|
213
|
+
```bash
|
|
214
|
+
dbutility test --target <orm> [opções]
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
| Flag | Descrição | Obrigatório |
|
|
218
|
+
| --------------------- | ---------------------------------------------------------- | ----------- |
|
|
219
|
+
| `--target <target>` | ORM alvo (`sequelize`, `typeorm`) | Sim |
|
|
220
|
+
| `--dir <dir>` | Diretório contendo as migrações | Não |
|
|
221
|
+
| `--engines <engines>` | Imagens Docker para testar (ex: `postgres:14,mysql:8`) | Não |
|
|
222
|
+
| `--backup` | Exporta backup do banco de dados do container após o teste | Não |
|
|
223
|
+
|
|
224
|
+
## Exemplos de Uso
|
|
225
|
+
|
|
226
|
+
### Conectar a um banco de dados usando uma conexão nomeada
|
|
127
227
|
|
|
128
228
|
```bash
|
|
129
|
-
dbutility
|
|
229
|
+
dbutility connect --conn producao
|
|
130
230
|
```
|
|
131
231
|
|
|
132
|
-
|
|
133
|
-
- `--target <target>`: ORM alvo (sequelize, typeorm).
|
|
134
|
-
- `--dir <dir>`: Diretório contendo as migrations (opcional).
|
|
135
|
-
- `--engines <engines>`: Lista separada por vírgula de engines de banco de dados para testar (ex: postgres:14, mysql:8). Se omitido, tenta ler `database-info.json` gerado pelo comando migrate.
|
|
232
|
+
### Fazer introspecção de um banco de dados usando parâmetros de conexão inline
|
|
136
233
|
|
|
137
|
-
|
|
138
|
-
|
|
234
|
+
```bash
|
|
235
|
+
dbutility introspect --type postgres --host localhost --username usuario --password senha --database meubanco
|
|
236
|
+
```
|
|
139
237
|
|
|
140
|
-
###
|
|
238
|
+
### Exportar modelos do Sequelize de uma conexão específica
|
|
141
239
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
240
|
+
```bash
|
|
241
|
+
dbutility export --target sequelize --conn desenvolvimento --output ./src/models
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
### Gerar migrações do TypeORM de uma conexão específica
|
|
245
|
+
|
|
246
|
+
```bash
|
|
247
|
+
dbutility migrations --target typeorm --conn producao
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
### Gerar Migrações de Dados (Seeds)
|
|
251
|
+
|
|
252
|
+
```bash
|
|
253
|
+
dbutility migrations --target sequelize --conn desenvolvimento --data --tables "usuarios,cargos"
|
|
254
|
+
```
|
|
150
255
|
|
|
151
256
|
## Licença
|
|
152
257
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/cli/helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,eAAO,MAAM,yBAAyB,GACpC,KAAK,MAAM,EACX,iBAAiB,MAAM,GAAG,SAAS,EACnC,WAAW,SAAS,KACnB,MAUF,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveMigrationOutputDir = void 0;
|
|
4
|
+
const path_1 = require("path");
|
|
5
|
+
const resolveMigrationOutputDir = (cwd, cliOutputOption, appConfig) => {
|
|
6
|
+
if (cliOutputOption) {
|
|
7
|
+
return cliOutputOption;
|
|
8
|
+
}
|
|
9
|
+
if (appConfig.migrations && appConfig.migrations.outputDir) {
|
|
10
|
+
return (0, path_1.join)(cwd, appConfig.migrations.outputDir);
|
|
11
|
+
}
|
|
12
|
+
return (0, path_1.join)(cwd, 'exports', 'generated-migrations');
|
|
13
|
+
};
|
|
14
|
+
exports.resolveMigrationOutputDir = resolveMigrationOutputDir;
|
|
15
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/cli/helpers.ts"],"names":[],"mappings":";;;AAAA,+BAA4B;AAGrB,MAAM,yBAAyB,GAAG,CACvC,GAAW,EACX,eAAmC,EACnC,SAAoB,EACZ,EAAE;IACV,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,IAAI,SAAS,CAAC,UAAU,IAAI,SAAS,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;QAC3D,OAAO,IAAA,WAAI,EAAC,GAAG,EAAE,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,IAAA,WAAI,EAAC,GAAG,EAAE,SAAS,EAAE,sBAAsB,CAAC,CAAC;AACtD,CAAC,CAAC;AAdW,QAAA,yBAAyB,6BAcpC"}
|
package/dist/cli/index.js
CHANGED
|
@@ -23,6 +23,7 @@ const ContainerManager_1 = require("../testing/ContainerManager");
|
|
|
23
23
|
const MigrationTester_1 = require("../testing/MigrationTester");
|
|
24
24
|
const appConfig = AppConfig_1.AppConfigLoader.load();
|
|
25
25
|
const messages = (0, messages_1.getMessages)(appConfig.language);
|
|
26
|
+
const helpers_1 = require("./helpers");
|
|
26
27
|
const getPackageVersion = () => {
|
|
27
28
|
try {
|
|
28
29
|
const packageJsonPath = (0, path_1.join)(__dirname, '../../package.json');
|
|
@@ -41,7 +42,9 @@ program
|
|
|
41
42
|
.version(getPackageVersion());
|
|
42
43
|
program
|
|
43
44
|
.option('--init', messages.cli.initOptionDescription)
|
|
44
|
-
.option('-f, --force', messages.cli.forceOptionDescription)
|
|
45
|
+
.option('-f, --force', messages.cli.forceOptionDescription)
|
|
46
|
+
.action(() => {
|
|
47
|
+
});
|
|
45
48
|
const handleCliError = (error) => {
|
|
46
49
|
if (error instanceof SqlSafety_1.DbUtilitySecurityError) {
|
|
47
50
|
const text = error.code === 'UNSAFE_OPERATION'
|
|
@@ -79,6 +82,9 @@ const handleCliError = (error) => {
|
|
|
79
82
|
case 'CONNECTION_FAILED':
|
|
80
83
|
text = messages.cli.connectionFailed;
|
|
81
84
|
break;
|
|
85
|
+
case 'CONNECTION_CONFIG_NOT_FOUND':
|
|
86
|
+
text = messages.cli.connectionConfigNotFound(error.details || '?');
|
|
87
|
+
break;
|
|
82
88
|
default:
|
|
83
89
|
text = error.message;
|
|
84
90
|
break;
|
|
@@ -92,6 +98,7 @@ const handleCliError = (error) => {
|
|
|
92
98
|
};
|
|
93
99
|
const addConnectionOptions = (cmd) => {
|
|
94
100
|
return cmd
|
|
101
|
+
.option('--conn <name>', messages.cli.optionConnectionName)
|
|
95
102
|
.option('-c, --config <path>', messages.cli.optionConfigPath)
|
|
96
103
|
.option('-t, --type <type>', messages.cli.optionType)
|
|
97
104
|
.option('-H, --host <host>', messages.cli.optionHost)
|
|
@@ -132,7 +139,7 @@ const getConnectionConfig = async (options) => {
|
|
|
132
139
|
overrides.database = options.database;
|
|
133
140
|
if (options.ssl)
|
|
134
141
|
overrides.ssl = true;
|
|
135
|
-
return ConfigLoader_1.ConfigLoader.load(options.config, overrides);
|
|
142
|
+
return ConfigLoader_1.ConfigLoader.load(options.config, overrides, options.conn);
|
|
136
143
|
};
|
|
137
144
|
const withConnection = async (options, action) => {
|
|
138
145
|
let connector = null;
|
|
@@ -199,7 +206,7 @@ addConnectionOptions(exportCommand)
|
|
|
199
206
|
console.log(`Successfully generated ${files.length} files in ${outputDir}`);
|
|
200
207
|
});
|
|
201
208
|
});
|
|
202
|
-
const migrateCommand = program.command('
|
|
209
|
+
const migrateCommand = program.command('migrations').description(messages.cli.migrateDescription);
|
|
203
210
|
addConnectionOptions(migrateCommand)
|
|
204
211
|
.option('--target <target>', 'Target ORM: sequelize, typeorm')
|
|
205
212
|
.option('--output <dir>', 'Output directory')
|
|
@@ -235,7 +242,7 @@ addConnectionOptions(migrateCommand)
|
|
|
235
242
|
databaseName: config.database,
|
|
236
243
|
timestamp: new Date().toISOString(),
|
|
237
244
|
};
|
|
238
|
-
const baseOutputDir =
|
|
245
|
+
const baseOutputDir = (0, helpers_1.resolveMigrationOutputDir)(process.cwd(), options.output, appConfig);
|
|
239
246
|
const outputDir = (0, path_1.join)(baseOutputDir, options.target.toLowerCase());
|
|
240
247
|
if (generateSchema) {
|
|
241
248
|
if (!('generateMigrations' in generator)) {
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigInitializer.d.ts","sourceRoot":"","sources":["../../src/config/ConfigInitializer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ConfigInitializer.d.ts","sourceRoot":"","sources":["../../src/config/ConfigInitializer.ts"],"names":[],"mappings":"AAKA,UAAU,UAAU;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;CACpB;AAuDD,qBAAa,iBAAiB;IAC5B,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG,UAAU;CAqBpD"}
|
|
@@ -12,6 +12,35 @@ const defaultConfig = {
|
|
|
12
12
|
outputDir: 'db-utility-migrations',
|
|
13
13
|
fileNamePattern: 'timestamp-prefix',
|
|
14
14
|
},
|
|
15
|
+
connection: {
|
|
16
|
+
type: 'mysql',
|
|
17
|
+
host: 'localhost',
|
|
18
|
+
port: 3306,
|
|
19
|
+
username: 'root',
|
|
20
|
+
password: 'password',
|
|
21
|
+
database: 'database_name',
|
|
22
|
+
ssl: false,
|
|
23
|
+
},
|
|
24
|
+
connections: {
|
|
25
|
+
development: {
|
|
26
|
+
type: 'mysql',
|
|
27
|
+
host: 'localhost',
|
|
28
|
+
port: 3306,
|
|
29
|
+
username: 'root',
|
|
30
|
+
password: 'password',
|
|
31
|
+
database: 'dev_db',
|
|
32
|
+
ssl: false,
|
|
33
|
+
},
|
|
34
|
+
production: {
|
|
35
|
+
type: 'postgres',
|
|
36
|
+
host: 'prod-db-host',
|
|
37
|
+
port: 5432,
|
|
38
|
+
username: 'prod_user',
|
|
39
|
+
password: 'secure_password',
|
|
40
|
+
database: 'prod_db',
|
|
41
|
+
ssl: true,
|
|
42
|
+
},
|
|
43
|
+
},
|
|
15
44
|
};
|
|
16
45
|
class ConfigInitializer {
|
|
17
46
|
static init(cwd, force = false) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigInitializer.js","sourceRoot":"","sources":["../../src/config/ConfigInitializer.ts"],"names":[],"mappings":";;;AAAA,2BAA+C;AAC/C,+BAA4B;
|
|
1
|
+
{"version":3,"file":"ConfigInitializer.js","sourceRoot":"","sources":["../../src/config/ConfigInitializer.ts"],"names":[],"mappings":";;;AAAA,2BAA+C;AAC/C,+BAA4B;AAuB5B,MAAM,aAAa,GAAsB;IACvC,QAAQ,EAAE,OAAO;IACjB,aAAa,EAAE;QACb,SAAS,EAAE,uBAAuB;KACnC;IACD,UAAU,EAAE;QACV,SAAS,EAAE,uBAAuB;QAClC,eAAe,EAAE,kBAAkB;KACpC;IACD,UAAU,EAAE;QACV,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,MAAM;QAChB,QAAQ,EAAE,UAAU;QACpB,QAAQ,EAAE,eAAe;QACzB,GAAG,EAAE,KAAK;KACX;IACD,WAAW,EAAE;QACX,WAAW,EAAE;YACX,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,MAAM;YAChB,QAAQ,EAAE,UAAU;YACpB,QAAQ,EAAE,QAAQ;YAClB,GAAG,EAAE,KAAK;SACX;QACD,UAAU,EAAE;YACV,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,WAAW;YACrB,QAAQ,EAAE,iBAAiB;YAC3B,QAAQ,EAAE,SAAS;YACnB,GAAG,EAAE,IAAI;SACV;KACF;CACF,CAAC;AAEF,MAAa,iBAAiB;IAC5B,MAAM,CAAC,IAAI,CAAC,GAAW,EAAE,KAAK,GAAG,KAAK;QACpC,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,IAAA,eAAU,EAAC,QAAQ,CAAC,CAAC;QAEpC,IAAI,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YACrB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,QAAQ;gBACd,SAAS,EAAE,KAAK;aACjB,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACvD,IAAA,kBAAa,EAAC,QAAQ,EAAE,GAAG,OAAO,IAAI,EAAE,OAAO,CAAC,CAAC;QAEjD,OAAO;YACL,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE,MAAM;SAClB,CAAC;IACJ,CAAC;CACF;AAtBD,8CAsBC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DatabaseConfig } from '../types/database';
|
|
2
2
|
export declare class ConfigLoader {
|
|
3
|
-
static load(configPath?: string, overrides?: Partial<DatabaseConfig
|
|
4
|
-
private static
|
|
5
|
-
private static
|
|
3
|
+
static load(configPath?: string, overrides?: Partial<DatabaseConfig>, connectionName?: string): Promise<DatabaseConfig>;
|
|
4
|
+
private static loadFromFileRaw;
|
|
5
|
+
private static loadFromEnvRaw;
|
|
6
6
|
}
|
|
7
7
|
//# sourceMappingURL=ConfigLoader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigLoader.d.ts","sourceRoot":"","sources":["../../src/config/ConfigLoader.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAgB,MAAM,mBAAmB,CAAC;AAKjE,qBAAa,YAAY;WACV,IAAI,CACf,UAAU,CAAC,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"ConfigLoader.d.ts","sourceRoot":"","sources":["../../src/config/ConfigLoader.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAgB,MAAM,mBAAmB,CAAC;AAKjE,qBAAa,YAAY;WACV,IAAI,CACf,UAAU,CAAC,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,EACnC,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,cAAc,CAAC;mBAwEL,eAAe;IAmBpC,OAAO,CAAC,MAAM,CAAC,cAAc;CA6B9B"}
|
|
@@ -10,43 +10,61 @@ const path_1 = require("path");
|
|
|
10
10
|
const DbUtilityError_1 = require("../errors/DbUtilityError");
|
|
11
11
|
dotenv_1.default.config();
|
|
12
12
|
class ConfigLoader {
|
|
13
|
-
static async load(configPath, overrides) {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
const defaultFiles = ['db-utility.config.js', 'db-utility.config.json', '.db-utilityrc'];
|
|
20
|
-
let found = false;
|
|
21
|
-
config = {};
|
|
13
|
+
static async load(configPath, overrides, connectionName) {
|
|
14
|
+
const envConfig = this.loadFromEnvRaw();
|
|
15
|
+
let fileConfig = {};
|
|
16
|
+
const defaultFiles = ['dbutility.config.json', 'db-utility.config.json', '.db-utilityrc'];
|
|
17
|
+
let path = configPath;
|
|
18
|
+
if (!path) {
|
|
22
19
|
for (const file of defaultFiles) {
|
|
23
|
-
const
|
|
24
|
-
if ((0, fs_1.existsSync)(
|
|
25
|
-
|
|
26
|
-
found = true;
|
|
20
|
+
const p = (0, path_1.resolve)(process.cwd(), file);
|
|
21
|
+
if ((0, fs_1.existsSync)(p)) {
|
|
22
|
+
path = p;
|
|
27
23
|
break;
|
|
28
24
|
}
|
|
29
25
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
if (
|
|
36
|
-
|
|
26
|
+
}
|
|
27
|
+
if (path) {
|
|
28
|
+
const rawFile = await this.loadFromFileRaw(path);
|
|
29
|
+
if (rawFile && typeof rawFile === 'object') {
|
|
30
|
+
if (connectionName) {
|
|
31
|
+
if (rawFile.connections &&
|
|
32
|
+
typeof rawFile.connections === 'object' &&
|
|
33
|
+
rawFile.connections[connectionName]) {
|
|
34
|
+
fileConfig = rawFile.connections[connectionName];
|
|
37
35
|
}
|
|
36
|
+
else {
|
|
37
|
+
throw new DbUtilityError_1.DbUtilityError('CONNECTION_CONFIG_NOT_FOUND', connectionName);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
else if ('connection' in rawFile && typeof rawFile.connection === 'object') {
|
|
41
|
+
fileConfig = rawFile.connection;
|
|
42
|
+
}
|
|
43
|
+
else if ('type' in rawFile || 'connectionString' in rawFile) {
|
|
44
|
+
fileConfig = rawFile;
|
|
38
45
|
}
|
|
39
46
|
}
|
|
40
47
|
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
48
|
+
const merge = (key) => {
|
|
49
|
+
const val = overrides?.[key] ?? fileConfig[key] ?? envConfig[key];
|
|
50
|
+
return val;
|
|
51
|
+
};
|
|
52
|
+
const finalConfig = {
|
|
53
|
+
type: merge('type'),
|
|
54
|
+
host: merge('host'),
|
|
55
|
+
port: merge('port'),
|
|
56
|
+
username: merge('username'),
|
|
57
|
+
password: merge('password'),
|
|
58
|
+
database: merge('database'),
|
|
59
|
+
ssl: merge('ssl'),
|
|
60
|
+
connectionString: merge('connectionString'),
|
|
61
|
+
};
|
|
62
|
+
if (!finalConfig.type && !finalConfig.connectionString) {
|
|
45
63
|
throw new DbUtilityError_1.DbUtilityError('CONFIG_DB_TYPE_OR_CONNECTION_STRING_REQUIRED');
|
|
46
64
|
}
|
|
47
|
-
return
|
|
65
|
+
return finalConfig;
|
|
48
66
|
}
|
|
49
|
-
static async
|
|
67
|
+
static async loadFromFileRaw(path) {
|
|
50
68
|
const absolutePath = (0, path_1.resolve)(process.cwd(), path);
|
|
51
69
|
if (!(0, fs_1.existsSync)(absolutePath)) {
|
|
52
70
|
throw new DbUtilityError_1.DbUtilityError('CONFIG_FILE_NOT_FOUND', absolutePath);
|
|
@@ -62,11 +80,8 @@ class ConfigLoader {
|
|
|
62
80
|
}
|
|
63
81
|
throw new DbUtilityError_1.DbUtilityError('CONFIG_FILE_FORMAT_UNSUPPORTED', ext);
|
|
64
82
|
}
|
|
65
|
-
static
|
|
83
|
+
static loadFromEnvRaw() {
|
|
66
84
|
const dbType = process.env.DBUTILITY_DB_TYPE || process.env.DB_TYPE;
|
|
67
|
-
if (!dbType) {
|
|
68
|
-
throw new DbUtilityError_1.DbUtilityError('CONFIG_DB_TYPE_REQUIRED');
|
|
69
|
-
}
|
|
70
85
|
const host = process.env.DBUTILITY_DB_HOST || process.env.DB_HOST;
|
|
71
86
|
const portStr = process.env.DBUTILITY_DB_PORT || process.env.DB_PORT;
|
|
72
87
|
const username = process.env.DBUTILITY_DB_USER ||
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigLoader.js","sourceRoot":"","sources":["../../src/config/ConfigLoader.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAC5B,2BAA8C;AAC9C,+BAAwC;AAExC,6DAA0D;AAE1D,gBAAM,CAAC,MAAM,EAAE,CAAC;AAEhB,MAAa,YAAY;IACvB,MAAM,CAAC,KAAK,CAAC,IAAI,CACf,UAAmB,EACnB,SAAmC;
|
|
1
|
+
{"version":3,"file":"ConfigLoader.js","sourceRoot":"","sources":["../../src/config/ConfigLoader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type DbUtilityErrorCode = 'INTROSPECTION_DB_TYPE_REQUIRED' | 'INTROSPECTION_DB_TYPE_UNSUPPORTED' | 'APP_CONFIG_FILE_NOT_FOUND' | 'APP_CONFIG_FILE_FORMAT_UNSUPPORTED' | 'CONFIG_FILE_NOT_FOUND' | 'CONFIG_FILE_FORMAT_UNSUPPORTED' | 'CONFIG_DB_TYPE_OR_CONNECTION_STRING_REQUIRED' | 'CONFIG_DB_TYPE_REQUIRED' | 'CONNECTION_FAILED';
|
|
1
|
+
export type DbUtilityErrorCode = 'INTROSPECTION_DB_TYPE_REQUIRED' | 'INTROSPECTION_DB_TYPE_UNSUPPORTED' | 'APP_CONFIG_FILE_NOT_FOUND' | 'APP_CONFIG_FILE_FORMAT_UNSUPPORTED' | 'CONFIG_FILE_NOT_FOUND' | 'CONFIG_FILE_FORMAT_UNSUPPORTED' | 'CONFIG_DB_TYPE_OR_CONNECTION_STRING_REQUIRED' | 'CONFIG_DB_TYPE_REQUIRED' | 'CONNECTION_FAILED' | 'CONNECTION_CONFIG_NOT_FOUND';
|
|
2
2
|
export declare class DbUtilityError extends Error {
|
|
3
3
|
code: DbUtilityErrorCode;
|
|
4
4
|
details?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DbUtilityError.d.ts","sourceRoot":"","sources":["../../src/errors/DbUtilityError.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,GAC1B,gCAAgC,GAChC,mCAAmC,GACnC,2BAA2B,GAC3B,oCAAoC,GACpC,uBAAuB,GACvB,gCAAgC,GAChC,8CAA8C,GAC9C,yBAAyB,GACzB,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"DbUtilityError.d.ts","sourceRoot":"","sources":["../../src/errors/DbUtilityError.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,GAC1B,gCAAgC,GAChC,mCAAmC,GACnC,2BAA2B,GAC3B,oCAAoC,GACpC,uBAAuB,GACvB,gCAAgC,GAChC,8CAA8C,GAC9C,yBAAyB,GACzB,mBAAmB,GACnB,6BAA6B,CAAC;AAElC,qBAAa,cAAe,SAAQ,KAAK;IACvC,IAAI,EAAE,kBAAkB,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;gBAEL,IAAI,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,MAAM;CAMvD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DbUtilityError.js","sourceRoot":"","sources":["../../src/errors/DbUtilityError.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"DbUtilityError.js","sourceRoot":"","sources":["../../src/errors/DbUtilityError.ts"],"names":[],"mappings":";;;AAYA,MAAa,cAAe,SAAQ,KAAK;IACvC,IAAI,CAAqB;IACzB,OAAO,CAAU;IAEjB,YAAY,IAAwB,EAAE,OAAgB;QACpD,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAVD,wCAUC"}
|
package/dist/i18n/messages.d.ts
CHANGED
|
@@ -15,6 +15,7 @@ export interface CliMessages {
|
|
|
15
15
|
optionPassword: string;
|
|
16
16
|
optionDatabase: string;
|
|
17
17
|
optionSsl: string;
|
|
18
|
+
optionConnectionName: string;
|
|
18
19
|
loadingConfig: string;
|
|
19
20
|
connecting: (dbType: string) => string;
|
|
20
21
|
connectSuccess: string;
|
|
@@ -40,6 +41,7 @@ export interface CliMessages {
|
|
|
40
41
|
configFileFormatUnsupported: (ext: string) => string;
|
|
41
42
|
configDbTypeOrConnectionStringRequired: string;
|
|
42
43
|
configDbTypeRequired: string;
|
|
44
|
+
connectionConfigNotFound: (name: string) => string;
|
|
43
45
|
connectionFailed: string;
|
|
44
46
|
}
|
|
45
47
|
export interface Messages {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/i18n/messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,MAAM,WAAW,WAAW;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IACvC,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACpD,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,iBAAiB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAC5C,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACtC,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACxC,aAAa,EAAE,MAAM,CAAC;IACtB,0BAA0B,EAAE,MAAM,CAAC;IACnC,2BAA2B,EAAE,MAAM,CAAC;IACpC,2BAA2B,EAAE,MAAM,CAAC;IACpC,8BAA8B,EAAE,MAAM,CAAC;IACvC,qBAAqB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAChD,8BAA8B,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IACxD,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7C,2BAA2B,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IACrD,sCAAsC,EAAE,MAAM,CAAC;IAC/C,oBAAoB,EAAE,MAAM,CAAC;IAC7B,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,WAAW,CAAC;CAClB;
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/i18n/messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,MAAM,WAAW,WAAW;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IACvC,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACpD,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,iBAAiB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAC5C,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACtC,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACxC,aAAa,EAAE,MAAM,CAAC;IACtB,0BAA0B,EAAE,MAAM,CAAC;IACnC,2BAA2B,EAAE,MAAM,CAAC;IACpC,2BAA2B,EAAE,MAAM,CAAC;IACpC,8BAA8B,EAAE,MAAM,CAAC;IACvC,qBAAqB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAChD,8BAA8B,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IACxD,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7C,2BAA2B,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IACrD,sCAAsC,EAAE,MAAM,CAAC;IAC/C,oBAAoB,EAAE,MAAM,CAAC;IAC7B,wBAAwB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACnD,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,WAAW,CAAC;CAClB;AAqLD,eAAO,MAAM,WAAW,GAAI,UAAU,WAAW,KAAG,QAUnD,CAAC"}
|
package/dist/i18n/messages.js
CHANGED
|
@@ -18,6 +18,7 @@ const ptBrMessages = {
|
|
|
18
18
|
optionPassword: 'Senha do banco de dados',
|
|
19
19
|
optionDatabase: 'Nome do banco de dados',
|
|
20
20
|
optionSsl: 'Habilitar SSL',
|
|
21
|
+
optionConnectionName: 'Nome da conexão no arquivo de configuração',
|
|
21
22
|
loadingConfig: 'Carregando configuração...',
|
|
22
23
|
connecting: (dbType) => `Tentando conectar ao banco de dados ${dbType}...`,
|
|
23
24
|
connectSuccess: '✅ Conexão estabelecida com sucesso!',
|
|
@@ -43,6 +44,7 @@ const ptBrMessages = {
|
|
|
43
44
|
configFileFormatUnsupported: (ext) => `Formato de arquivo não suportado: ${ext}`,
|
|
44
45
|
configDbTypeOrConnectionStringRequired: 'Tipo de banco de dados (type) ou connectionString é obrigatório.',
|
|
45
46
|
configDbTypeRequired: 'Configuração de banco de dados não encontrada. Defina as variáveis de ambiente ou crie um arquivo de configuração.',
|
|
47
|
+
connectionConfigNotFound: (name) => `Conexão "${name}" não encontrada no arquivo de configuração.`,
|
|
46
48
|
connectionFailed: 'Conexão não estabelecida',
|
|
47
49
|
},
|
|
48
50
|
};
|
|
@@ -63,6 +65,7 @@ const enMessages = {
|
|
|
63
65
|
optionPassword: 'Database password',
|
|
64
66
|
optionDatabase: 'Database name',
|
|
65
67
|
optionSsl: 'Enable SSL',
|
|
68
|
+
optionConnectionName: 'Connection name in configuration file',
|
|
66
69
|
loadingConfig: 'Loading configuration...',
|
|
67
70
|
connecting: (dbType) => `Trying to connect to ${dbType} database...`,
|
|
68
71
|
connectSuccess: '✅ Connection established successfully!',
|
|
@@ -88,6 +91,7 @@ const enMessages = {
|
|
|
88
91
|
configFileFormatUnsupported: (ext) => `File format not supported: ${ext}`,
|
|
89
92
|
configDbTypeOrConnectionStringRequired: 'Database type (type) or connectionString is required.',
|
|
90
93
|
configDbTypeRequired: 'Database configuration not found. Set environment variables or create a configuration file.',
|
|
94
|
+
connectionConfigNotFound: (name) => `Connection "${name}" not found in configuration file.`,
|
|
91
95
|
connectionFailed: 'Connection not established',
|
|
92
96
|
},
|
|
93
97
|
};
|
|
@@ -108,6 +112,7 @@ const esMessages = {
|
|
|
108
112
|
optionPassword: 'Contraseña de la base de datos',
|
|
109
113
|
optionDatabase: 'Nombre de la base de datos',
|
|
110
114
|
optionSsl: 'Habilitar SSL',
|
|
115
|
+
optionConnectionName: 'Nombre de la conexión en el archivo de configuración',
|
|
111
116
|
loadingConfig: 'Cargando configuración...',
|
|
112
117
|
connecting: (dbType) => `Intentando conectar a la base de datos ${dbType}...`,
|
|
113
118
|
connectSuccess: '✅ Conexión establecida con éxito.',
|
|
@@ -133,6 +138,7 @@ const esMessages = {
|
|
|
133
138
|
configFileFormatUnsupported: (ext) => `Formato de archivo no soportado: ${ext}`,
|
|
134
139
|
configDbTypeOrConnectionStringRequired: 'El tipo de base de datos (type) o connectionString es obligatorio.',
|
|
135
140
|
configDbTypeRequired: 'Configuración de base de datos no encontrada. Defina las variables de entorno o cree un archivo de configuración.',
|
|
141
|
+
connectionConfigNotFound: (name) => `Conexión "${name}" no encontrada en el archivo de configuración.`,
|
|
136
142
|
connectionFailed: 'Conexión no establecida',
|
|
137
143
|
},
|
|
138
144
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/i18n/messages.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/i18n/messages.ts"],"names":[],"mappings":"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"}
|