@codemastersolutions/db-utility 0.0.11 → 0.0.13
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 +98 -50
- package/README.md +52 -7
- package/README.pt-BR.md +52 -7
- package/dist/cli/VersionChecker.d.ts +21 -0
- package/dist/cli/VersionChecker.d.ts.map +1 -0
- package/dist/cli/VersionChecker.js +193 -0
- package/dist/cli/VersionChecker.js.map +1 -0
- package/dist/cli/helpers.js +4 -4
- package/dist/cli/helpers.js.map +1 -1
- package/dist/cli/index.js +86 -45
- package/dist/cli/index.js.map +1 -1
- package/dist/config/AppConfig.d.ts +5 -0
- package/dist/config/AppConfig.d.ts.map +1 -1
- package/dist/config/AppConfig.js +47 -24
- package/dist/config/AppConfig.js.map +1 -1
- package/dist/config/ConfigInitializer.d.ts.map +1 -1
- package/dist/config/ConfigInitializer.js +6 -5
- package/dist/config/ConfigInitializer.js.map +1 -1
- package/dist/config/ConfigLoader.d.ts +11 -0
- package/dist/config/ConfigLoader.d.ts.map +1 -1
- package/dist/config/ConfigLoader.js +120 -41
- package/dist/config/ConfigLoader.js.map +1 -1
- package/dist/database/SqlSafety.js +1 -1
- package/dist/database/SqlSafety.js.map +1 -1
- package/dist/database/connectors/MssqlConnector.d.ts +1 -2
- package/dist/database/connectors/MssqlConnector.d.ts.map +1 -1
- package/dist/database/connectors/MssqlConnector.js +13 -5
- package/dist/database/connectors/MssqlConnector.js.map +1 -1
- package/dist/database/connectors/MysqlConnector.d.ts +1 -1
- package/dist/database/connectors/MysqlConnector.d.ts.map +1 -1
- package/dist/database/connectors/MysqlConnector.js +14 -1
- package/dist/database/connectors/MysqlConnector.js.map +1 -1
- package/dist/database/connectors/PostgresConnector.d.ts +1 -1
- package/dist/database/connectors/PostgresConnector.d.ts.map +1 -1
- package/dist/database/connectors/PostgresConnector.js +3 -0
- package/dist/database/connectors/PostgresConnector.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/generators/GeneratorWriter.js +8 -8
- package/dist/generators/GeneratorWriter.js.map +1 -1
- package/dist/generators/PrismaGenerator.js +2 -2
- package/dist/generators/PrismaGenerator.js.map +1 -1
- package/dist/generators/SequelizeGenerator.d.ts.map +1 -1
- package/dist/generators/SequelizeGenerator.js +24 -22
- package/dist/generators/SequelizeGenerator.js.map +1 -1
- package/dist/generators/TypeORMGenerator.js +6 -6
- package/dist/generators/TypeORMGenerator.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/dist/introspection/DataExtractor.d.ts +2 -2
- package/dist/introspection/DataExtractor.d.ts.map +1 -1
- package/dist/introspection/DataExtractor.js.map +1 -1
- package/dist/introspection/IntrospectionLogger.js +9 -9
- package/dist/introspection/IntrospectionLogger.js.map +1 -1
- package/dist/introspection/IntrospectionService.d.ts +2 -2
- package/dist/introspection/IntrospectionService.d.ts.map +1 -1
- package/dist/introspection/IntrospectionService.js.map +1 -1
- package/dist/introspection/PostgresIntrospector.d.ts.map +1 -1
- package/dist/introspection/PostgresIntrospector.js +1 -2
- package/dist/introspection/PostgresIntrospector.js.map +1 -1
- package/dist/testing/ContainerManager.js +3 -3
- package/dist/testing/ContainerManager.js.map +1 -1
- package/dist/testing/MigrationTester.d.ts +2 -2
- package/dist/testing/MigrationTester.d.ts.map +1 -1
- package/dist/testing/MigrationTester.js +25 -24
- package/dist/testing/MigrationTester.js.map +1 -1
- package/dist/testing/ModelTester.d.ts +15 -0
- package/dist/testing/ModelTester.d.ts.map +1 -0
- package/dist/testing/ModelTester.js +383 -0
- package/dist/testing/ModelTester.js.map +1 -0
- package/dist/testing/runners/SequelizeRunner.d.ts.map +1 -1
- package/dist/testing/runners/SequelizeRunner.js +11 -9
- package/dist/testing/runners/SequelizeRunner.js.map +1 -1
- package/dist/testing/runners/TypeORMRunner.d.ts.map +1 -1
- package/dist/testing/runners/TypeORMRunner.js +13 -11
- package/dist/testing/runners/TypeORMRunner.js.map +1 -1
- package/dist/types/database.d.ts +1 -0
- package/dist/types/database.d.ts.map +1 -1
- package/dist/utils/PackageManager.d.ts.map +1 -1
- package/dist/utils/PackageManager.js +10 -8
- package/dist/utils/PackageManager.js.map +1 -1
- package/package.json +6 -25
package/README.es.md
CHANGED
|
@@ -25,6 +25,15 @@ npm install @codemastersolutions/db-utility
|
|
|
25
25
|
npm install -g @codemastersolutions/db-utility
|
|
26
26
|
```
|
|
27
27
|
|
|
28
|
+
## Uso de Internet
|
|
29
|
+
|
|
30
|
+
Esta librería utiliza su conexión a internet para buscar actualizaciones en el registro npm. Esta verificación se realiza automáticamente (predeterminado: diariamente) cuando ejecuta un comando de la CLI.
|
|
31
|
+
|
|
32
|
+
- **Tiempo de espera**: La verificación tiene un tiempo de espera de 10 segundos.
|
|
33
|
+
- **Sin conexión**: Si no se detecta conexión a internet, la verificación se omite silenciosamente.
|
|
34
|
+
- **Privacidad**: No se recopilan datos personales. Solo se compara la versión del paquete.
|
|
35
|
+
- **Configuración**: Puede desactivar esta función o cambiar la frecuencia en el archivo de configuración.
|
|
36
|
+
|
|
28
37
|
## Configuración
|
|
29
38
|
|
|
30
39
|
### Inicialización
|
|
@@ -50,6 +59,10 @@ El archivo de configuración permite definir el idioma de la CLI, directorios de
|
|
|
50
59
|
```json
|
|
51
60
|
{
|
|
52
61
|
"language": "es",
|
|
62
|
+
"versionCheck": {
|
|
63
|
+
"enabled": true,
|
|
64
|
+
"frequency": "daily"
|
|
65
|
+
},
|
|
53
66
|
"introspection": {
|
|
54
67
|
"outputDir": "db-utility-introspect"
|
|
55
68
|
},
|
|
@@ -57,10 +70,7 @@ El archivo de configuración permite definir el idioma de la CLI, directorios de
|
|
|
57
70
|
"outputDir": "db-utility-migrations",
|
|
58
71
|
"fileNamePattern": "timestamp-prefix",
|
|
59
72
|
"data": true,
|
|
60
|
-
"dataTables": [
|
|
61
|
-
"usuarios",
|
|
62
|
-
{ "table": "logs", "where": "nivel = 'ERROR'" }
|
|
63
|
-
],
|
|
73
|
+
"dataTables": ["usuarios", { "table": "logs", "where": "nivel = 'ERROR'" }],
|
|
64
74
|
"backup": true
|
|
65
75
|
},
|
|
66
76
|
"connection": {
|
|
@@ -70,7 +80,8 @@ El archivo de configuración permite definir el idioma de la CLI, directorios de
|
|
|
70
80
|
"username": "usuario",
|
|
71
81
|
"password": "password",
|
|
72
82
|
"database": "mibasedatos",
|
|
73
|
-
"ssl": false
|
|
83
|
+
"ssl": false,
|
|
84
|
+
"connectTimeoutMs": 15000
|
|
74
85
|
},
|
|
75
86
|
"connections": {
|
|
76
87
|
"desarrollo": {
|
|
@@ -79,7 +90,8 @@ El archivo de configuración permite definir el idioma de la CLI, directorios de
|
|
|
79
90
|
"port": 3306,
|
|
80
91
|
"username": "root",
|
|
81
92
|
"password": "password",
|
|
82
|
-
"database": "dev_db"
|
|
93
|
+
"database": "dev_db",
|
|
94
|
+
"connectTimeoutMs": 15000
|
|
83
95
|
},
|
|
84
96
|
"produccion": {
|
|
85
97
|
"type": "postgres",
|
|
@@ -88,23 +100,43 @@ El archivo de configuración permite definir el idioma de la CLI, directorios de
|
|
|
88
100
|
"username": "admin",
|
|
89
101
|
"password": "secure_password",
|
|
90
102
|
"database": "prod_db",
|
|
91
|
-
"ssl": true
|
|
103
|
+
"ssl": true,
|
|
104
|
+
"connectTimeoutMs": 15000
|
|
92
105
|
}
|
|
93
106
|
}
|
|
94
107
|
}
|
|
95
108
|
```
|
|
96
109
|
|
|
110
|
+
### Configuración de Verificación de Versión
|
|
111
|
+
|
|
112
|
+
Puede configurar la verificación automática de versión en `dbutility.config.json`.
|
|
113
|
+
|
|
114
|
+
```json
|
|
115
|
+
{
|
|
116
|
+
"versionCheck": {
|
|
117
|
+
"enabled": true,
|
|
118
|
+
"frequency": "daily"
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
- **`enabled`** (boolean): Establezca en `true` para habilitar la verificación de versión, `false` para deshabilitarla. Predeterminado: `true`.
|
|
124
|
+
- **`frequency`** (string): Con qué frecuencia verificar actualizaciones.
|
|
125
|
+
- `"daily"`: Una vez al día (predeterminado).
|
|
126
|
+
- `"weekly"`: Una vez a la semana.
|
|
127
|
+
- `"monthly"`: Una vez al mes.
|
|
128
|
+
|
|
97
129
|
### Configuración Avanzada de Extracción de Datos
|
|
98
130
|
|
|
99
131
|
La opción `dataTables` permite especificar qué tablas deben tener sus datos exportados (para seeds). Puede proporcionar una lista simple de nombres de tablas o un objeto con una cláusula `where` para filtrar los datos.
|
|
100
132
|
|
|
101
133
|
```json
|
|
102
134
|
"dataTables": [
|
|
103
|
-
"roles",
|
|
135
|
+
"roles",
|
|
104
136
|
"permisos",
|
|
105
|
-
{
|
|
106
|
-
"table": "usuarios",
|
|
107
|
-
"where": "activo = 1 AND creado_en > '2023-01-01'"
|
|
137
|
+
{
|
|
138
|
+
"table": "usuarios",
|
|
139
|
+
"where": "activo = 1 AND creado_en > '2023-01-01'"
|
|
108
140
|
},
|
|
109
141
|
{
|
|
110
142
|
"table": "registros",
|
|
@@ -118,6 +150,7 @@ La opción `dataTables` permite especificar qué tablas deben tener sus datos ex
|
|
|
118
150
|
Puede definir múltiples conexiones dentro de la propiedad `connections` y utilizarlas en la CLI con el flag `--conn <nombre>`.
|
|
119
151
|
|
|
120
152
|
Ejemplo:
|
|
153
|
+
|
|
121
154
|
```bash
|
|
122
155
|
dbutility connect --conn desarrollo
|
|
123
156
|
```
|
|
@@ -163,6 +196,7 @@ DB_PORT=5432
|
|
|
163
196
|
DB_USER=usuario
|
|
164
197
|
DB_PASSWORD=password
|
|
165
198
|
DB_NAME=mibasedatos
|
|
199
|
+
DB_CONNECT_TIMEOUT_MS=15000
|
|
166
200
|
```
|
|
167
201
|
|
|
168
202
|
## Comandos y Flags de la CLI
|
|
@@ -171,26 +205,27 @@ DB_NAME=mibasedatos
|
|
|
171
205
|
|
|
172
206
|
### Opciones Globales
|
|
173
207
|
|
|
174
|
-
| Flag
|
|
175
|
-
|
|
176
|
-
| `--init`
|
|
177
|
-
| `-f, --force`
|
|
178
|
-
| `-v, --version` | Muestra el número de la versión
|
|
179
|
-
| `-h, --help`
|
|
180
|
-
|
|
181
|
-
### Opciones de Conexión (Disponibles para `connect`, `introspect`, `
|
|
182
|
-
|
|
183
|
-
| Flag
|
|
184
|
-
|
|
185
|
-
| `--conn <name>`
|
|
186
|
-
| `-c, --config <path>`
|
|
187
|
-
| `-t, --type <type>`
|
|
188
|
-
| `-H, --host <host>`
|
|
189
|
-
| `-P, --port <port>`
|
|
190
|
-
| `-u, --username <username>` | Usuario de la base de datos
|
|
191
|
-
| `-p, --password <password>` | Contraseña de la base de datos
|
|
192
|
-
| `-d, --database <database>` | Nombre de la base de datos
|
|
193
|
-
| `--ssl`
|
|
208
|
+
| Flag | Descripción |
|
|
209
|
+
| --------------- | -------------------------------------------------------------- |
|
|
210
|
+
| `--init` | Inicializa el archivo de configuración |
|
|
211
|
+
| `-f, --force` | Fuerza la recreación del archivo de configuración si ya existe |
|
|
212
|
+
| `-v, --version` | Muestra el número de la versión |
|
|
213
|
+
| `-h, --help` | Muestra ayuda para el comando |
|
|
214
|
+
|
|
215
|
+
### Opciones de Conexión (Disponibles para `connect`, `introspect`, `models`, `migrations`)
|
|
216
|
+
|
|
217
|
+
| Flag | Descripción |
|
|
218
|
+
| --------------------------- | ------------------------------------------------------------- |
|
|
219
|
+
| `--conn <name>` | Nombre de la conexión definida en el archivo de configuración |
|
|
220
|
+
| `-c, --config <path>` | Ruta al archivo de configuración |
|
|
221
|
+
| `-t, --type <type>` | Tipo de base de datos (`mysql`, `postgres`, `mssql`) |
|
|
222
|
+
| `-H, --host <host>` | Host de la base de datos |
|
|
223
|
+
| `-P, --port <port>` | Puerto de la base de datos |
|
|
224
|
+
| `-u, --username <username>` | Usuario de la base de datos |
|
|
225
|
+
| `-p, --password <password>` | Contraseña de la base de datos |
|
|
226
|
+
| `-d, --database <database>` | Nombre de la base de datos |
|
|
227
|
+
| `--ssl` | Habilita conexión SSL |
|
|
228
|
+
| `--connect-timeout <ms>` | Timeout de conexión (ms) |
|
|
194
229
|
|
|
195
230
|
### Comandos
|
|
196
231
|
|
|
@@ -210,18 +245,19 @@ Realiza introspección en el esquema de la base de datos.
|
|
|
210
245
|
dbutility introspect [opciones-conexión]
|
|
211
246
|
```
|
|
212
247
|
|
|
213
|
-
#### `
|
|
248
|
+
#### `models`
|
|
214
249
|
|
|
215
250
|
Exporta modelos para el ORM objetivo.
|
|
216
251
|
|
|
217
252
|
```bash
|
|
218
|
-
dbutility
|
|
253
|
+
dbutility models --target <orm> [opciones] [opciones-conexión]
|
|
219
254
|
```
|
|
220
255
|
|
|
221
|
-
| Flag
|
|
222
|
-
|
|
223
|
-
| `--target <target>` | ORM objetivo (`sequelize`, `typeorm`, `prisma`, `mongoose`) | Sí
|
|
224
|
-
| `--output <dir>`
|
|
256
|
+
| Flag | Descripción | Obligatorio |
|
|
257
|
+
| ------------------- | ----------------------------------------------------------- | ----------- |
|
|
258
|
+
| `--target <target>` | ORM objetivo (`sequelize`, `typeorm`, `prisma`, `mongoose`) | Sí |
|
|
259
|
+
| `--output <dir>` | Directorio de salida | No |
|
|
260
|
+
| `--test` | Ejecuta pruebas en los modelos generados | No |
|
|
225
261
|
|
|
226
262
|
#### `migrations`
|
|
227
263
|
|
|
@@ -231,13 +267,14 @@ Genera migraciones a partir del esquema de la base de datos.
|
|
|
231
267
|
dbutility migrations --target <orm> [opciones] [opciones-conexión]
|
|
232
268
|
```
|
|
233
269
|
|
|
234
|
-
| Flag
|
|
235
|
-
|
|
236
|
-
| `--target <target>` | ORM objetivo (`sequelize`, `typeorm`)
|
|
237
|
-
| `--output <dir>`
|
|
238
|
-
| `--data`
|
|
239
|
-
| `--only-data`
|
|
270
|
+
| Flag | Descripción | Obligatorio |
|
|
271
|
+
| ------------------- | ---------------------------------------------------------------------------------------- | -------------------------------------------------------------- |
|
|
272
|
+
| `--target <target>` | ORM objetivo (`sequelize`, `typeorm`) | Sí |
|
|
273
|
+
| `--output <dir>` | Directorio de salida | No |
|
|
274
|
+
| `--data` | Genera migración de datos (seeds) junto con el esquema (Sobrescribe configuración) | No |
|
|
275
|
+
| `--only-data` | Genera SOLO migración de datos | No |
|
|
240
276
|
| `--tables <tables>` | Lista de tablas separadas por coma para exportación de datos (Sobrescribe configuración) | Sí (si `--data` o `--only-data` y no está en la configuración) |
|
|
277
|
+
| `--test` | Ejecuta el comando test después de la generación de migraciones | No |
|
|
241
278
|
|
|
242
279
|
#### `test`
|
|
243
280
|
|
|
@@ -247,36 +284,47 @@ Prueba migraciones generadas en contenedores Docker.
|
|
|
247
284
|
dbutility test --target <orm> [opciones]
|
|
248
285
|
```
|
|
249
286
|
|
|
250
|
-
| Flag
|
|
251
|
-
|
|
252
|
-
| `--target <target>`
|
|
253
|
-
| `--dir <dir>`
|
|
254
|
-
| `--engines <engines>` | Imágenes Docker para probar (ej: `postgres:14,mysql:8`)
|
|
255
|
-
| `--backup`
|
|
287
|
+
| Flag | Descripción | Obligatorio |
|
|
288
|
+
| --------------------- | -------------------------------------------------------------------------------------------------- | ----------- |
|
|
289
|
+
| `--target <target>` | ORM objetivo (`sequelize`, `typeorm`) | Sí |
|
|
290
|
+
| `--dir <dir>` | Directorio conteniendo las migraciones | No |
|
|
291
|
+
| `--engines <engines>` | Imágenes Docker para probar (ej: `postgres:14,mysql:8`) | No |
|
|
292
|
+
| `--backup` | Exporta backup de la base de datos del contenedor después de la prueba (Sobrescribe configuración) | No |
|
|
256
293
|
|
|
257
294
|
## Ejemplos de Uso
|
|
258
295
|
|
|
259
296
|
### Conectar a una base de datos usando una conexión con nombre
|
|
297
|
+
|
|
260
298
|
```bash
|
|
261
299
|
dbutility connect --conn produccion
|
|
262
300
|
```
|
|
263
301
|
|
|
264
302
|
### Realizar introspección de una base de datos usando parámetros de conexión en línea
|
|
303
|
+
|
|
265
304
|
```bash
|
|
266
305
|
dbutility introspect --type postgres --host localhost --username usuario --password contrasena --database mibasedatos
|
|
267
306
|
```
|
|
268
307
|
|
|
269
308
|
### Exportar modelos de Sequelize desde una conexión específica
|
|
309
|
+
|
|
270
310
|
```bash
|
|
271
|
-
dbutility
|
|
311
|
+
dbutility models --target sequelize --conn desarrollo --output ./src/models
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
### Exportar modelos y ejecutar pruebas
|
|
315
|
+
|
|
316
|
+
```bash
|
|
317
|
+
dbutility models --target sequelize --conn desarrollo --test
|
|
272
318
|
```
|
|
273
319
|
|
|
274
320
|
### Generar migraciones de TypeORM desde una conexión específica
|
|
321
|
+
|
|
275
322
|
```bash
|
|
276
323
|
dbutility migrations --target typeorm --conn produccion
|
|
277
324
|
```
|
|
278
325
|
|
|
279
326
|
### Generar Migraciones de Datos (Seeds)
|
|
327
|
+
|
|
280
328
|
```bash
|
|
281
329
|
dbutility migrations --target sequelize --conn desarrollo --data --tables "usuarios,roles"
|
|
282
330
|
```
|
package/README.md
CHANGED
|
@@ -25,6 +25,15 @@ npm install @codemastersolutions/db-utility
|
|
|
25
25
|
npm install -g @codemastersolutions/db-utility
|
|
26
26
|
```
|
|
27
27
|
|
|
28
|
+
## Internet Usage
|
|
29
|
+
|
|
30
|
+
This library uses your internet connection to check for updates on the npm registry. This check is performed automatically (default: daily) when you execute a CLI command.
|
|
31
|
+
|
|
32
|
+
- **Timeout**: The check has a 10-second timeout.
|
|
33
|
+
- **Offline**: If no internet connection is detected, the check is silently skipped.
|
|
34
|
+
- **Privacy**: No personal data is collected. Only the package version is compared.
|
|
35
|
+
- **Configuration**: You can disable this feature or change the frequency in the configuration file.
|
|
36
|
+
|
|
28
37
|
## Configuration
|
|
29
38
|
|
|
30
39
|
### Initialization
|
|
@@ -50,6 +59,10 @@ The configuration file allows you to define CLI language, output directories, na
|
|
|
50
59
|
```json
|
|
51
60
|
{
|
|
52
61
|
"language": "en",
|
|
62
|
+
"versionCheck": {
|
|
63
|
+
"enabled": true,
|
|
64
|
+
"frequency": "daily"
|
|
65
|
+
},
|
|
53
66
|
"introspection": {
|
|
54
67
|
"outputDir": "db-utility-introspect"
|
|
55
68
|
},
|
|
@@ -67,7 +80,8 @@ The configuration file allows you to define CLI language, output directories, na
|
|
|
67
80
|
"username": "myuser",
|
|
68
81
|
"password": "mypassword",
|
|
69
82
|
"database": "mydb",
|
|
70
|
-
"ssl": false
|
|
83
|
+
"ssl": false,
|
|
84
|
+
"connectTimeoutMs": 15000
|
|
71
85
|
},
|
|
72
86
|
"connections": {
|
|
73
87
|
"development": {
|
|
@@ -76,7 +90,8 @@ The configuration file allows you to define CLI language, output directories, na
|
|
|
76
90
|
"port": 3306,
|
|
77
91
|
"username": "root",
|
|
78
92
|
"password": "password",
|
|
79
|
-
"database": "dev_db"
|
|
93
|
+
"database": "dev_db",
|
|
94
|
+
"connectTimeoutMs": 15000
|
|
80
95
|
},
|
|
81
96
|
"production": {
|
|
82
97
|
"type": "postgres",
|
|
@@ -85,12 +100,32 @@ The configuration file allows you to define CLI language, output directories, na
|
|
|
85
100
|
"username": "admin",
|
|
86
101
|
"password": "secure_password",
|
|
87
102
|
"database": "prod_db",
|
|
88
|
-
"ssl": true
|
|
103
|
+
"ssl": true,
|
|
104
|
+
"connectTimeoutMs": 15000
|
|
89
105
|
}
|
|
90
106
|
}
|
|
91
107
|
}
|
|
92
108
|
```
|
|
93
109
|
|
|
110
|
+
### Version Check Configuration
|
|
111
|
+
|
|
112
|
+
You can configure the automatic version check in `dbutility.config.json`.
|
|
113
|
+
|
|
114
|
+
```json
|
|
115
|
+
{
|
|
116
|
+
"versionCheck": {
|
|
117
|
+
"enabled": true,
|
|
118
|
+
"frequency": "daily"
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
- **`enabled`** (boolean): Set to `true` to enable version checking, `false` to disable it. Default: `true`.
|
|
124
|
+
- **`frequency`** (string): How often to check for updates.
|
|
125
|
+
- `"daily"`: Once a day (default).
|
|
126
|
+
- `"weekly"`: Once a week.
|
|
127
|
+
- `"monthly"`: Once a month.
|
|
128
|
+
|
|
94
129
|
### Advanced Data Extraction Configuration
|
|
95
130
|
|
|
96
131
|
The `dataTables` option allows you to specify which tables should have their data exported (for seeds). You can provide a simple list of table names or an object with a `where` clause to filter the data.
|
|
@@ -168,6 +203,7 @@ DB_PORT=5432
|
|
|
168
203
|
DB_USER=myuser
|
|
169
204
|
DB_PASSWORD=mypassword
|
|
170
205
|
DB_NAME=mydb
|
|
206
|
+
DB_CONNECT_TIMEOUT_MS=15000
|
|
171
207
|
```
|
|
172
208
|
|
|
173
209
|
## CLI Commands & Flags
|
|
@@ -183,7 +219,7 @@ DB_NAME=mydb
|
|
|
183
219
|
| `-v, --version` | Output the version number |
|
|
184
220
|
| `-h, --help` | Display help for command |
|
|
185
221
|
|
|
186
|
-
### Connection Options (Available for `connect`, `introspect`, `
|
|
222
|
+
### Connection Options (Available for `connect`, `introspect`, `models`, `migrations`)
|
|
187
223
|
|
|
188
224
|
| Flag | Description |
|
|
189
225
|
| --------------------------- | --------------------------------------------- |
|
|
@@ -196,6 +232,7 @@ DB_NAME=mydb
|
|
|
196
232
|
| `-p, --password <password>` | Database password |
|
|
197
233
|
| `-d, --database <database>` | Database name |
|
|
198
234
|
| `--ssl` | Enable SSL connection |
|
|
235
|
+
| `--connect-timeout <ms>` | Connection timeout (ms) |
|
|
199
236
|
|
|
200
237
|
### Commands
|
|
201
238
|
|
|
@@ -215,18 +252,19 @@ Introspect database schema.
|
|
|
215
252
|
dbutility introspect [connection-options]
|
|
216
253
|
```
|
|
217
254
|
|
|
218
|
-
#### `
|
|
255
|
+
#### `models`
|
|
219
256
|
|
|
220
257
|
Export models for target ORM.
|
|
221
258
|
|
|
222
259
|
```bash
|
|
223
|
-
dbutility
|
|
260
|
+
dbutility models --target <orm> [options] [connection-options]
|
|
224
261
|
```
|
|
225
262
|
|
|
226
263
|
| Flag | Description | Required |
|
|
227
264
|
| ------------------- | --------------------------------------------------------- | -------- |
|
|
228
265
|
| `--target <target>` | Target ORM (`sequelize`, `typeorm`, `prisma`, `mongoose`) | Yes |
|
|
229
266
|
| `--output <dir>` | Output directory | No |
|
|
267
|
+
| `--test` | Run tests on generated models | No |
|
|
230
268
|
|
|
231
269
|
#### `migrations`
|
|
232
270
|
|
|
@@ -243,6 +281,7 @@ dbutility migrations --target <orm> [options] [connection-options]
|
|
|
243
281
|
| `--data` | Generate data migration (seeds) along with schema (Overrides config) | No |
|
|
244
282
|
| `--only-data` | Generate ONLY data migrations | No |
|
|
245
283
|
| `--tables <tables>` | Comma-separated list of tables for data export (Overrides config) | Yes (if `--data` or `--only-data` and not in config) |
|
|
284
|
+
| `--test` | Run test command after migration generation | No |
|
|
246
285
|
|
|
247
286
|
#### `test`
|
|
248
287
|
|
|
@@ -276,7 +315,13 @@ dbutility introspect --type postgres --host localhost --username myuser --passwo
|
|
|
276
315
|
### Export Sequelize models from a specific connection
|
|
277
316
|
|
|
278
317
|
```bash
|
|
279
|
-
dbutility
|
|
318
|
+
dbutility models --target sequelize --conn development --output ./src/models
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
### Export models and run tests
|
|
322
|
+
|
|
323
|
+
```bash
|
|
324
|
+
dbutility models --target sequelize --conn development --test
|
|
280
325
|
```
|
|
281
326
|
|
|
282
327
|
### Generate TypeORM migrations from a specific connection
|
package/README.pt-BR.md
CHANGED
|
@@ -25,6 +25,15 @@ npm install @codemastersolutions/db-utility
|
|
|
25
25
|
npm install -g @codemastersolutions/db-utility
|
|
26
26
|
```
|
|
27
27
|
|
|
28
|
+
## Uso de Internet
|
|
29
|
+
|
|
30
|
+
Esta biblioteca utiliza sua conexão com a internet para verificar atualizações no registro npm. Esta verificação é realizada automaticamente (padrão: diariamente) quando você executa um comando da CLI.
|
|
31
|
+
|
|
32
|
+
- **Timeout**: A verificação tem um tempo limite de 10 segundos.
|
|
33
|
+
- **Offline**: Se nenhuma conexão com a internet for detectada, a verificação é ignorada silenciosamente.
|
|
34
|
+
- **Privacidade**: Nenhum dado pessoal é coletado. Apenas a versão do pacote é comparada.
|
|
35
|
+
- **Configuração**: Você pode desativar este recurso ou alterar a frequência no arquivo de configuração.
|
|
36
|
+
|
|
28
37
|
## Configuração
|
|
29
38
|
|
|
30
39
|
### Inicialização
|
|
@@ -50,6 +59,10 @@ O arquivo de configuração permite definir o idioma da CLI, diretórios de saí
|
|
|
50
59
|
```json
|
|
51
60
|
{
|
|
52
61
|
"language": "pt-BR",
|
|
62
|
+
"versionCheck": {
|
|
63
|
+
"enabled": true,
|
|
64
|
+
"frequency": "daily"
|
|
65
|
+
},
|
|
53
66
|
"introspection": {
|
|
54
67
|
"outputDir": "db-utility-introspect"
|
|
55
68
|
},
|
|
@@ -67,7 +80,8 @@ O arquivo de configuração permite definir o idioma da CLI, diretórios de saí
|
|
|
67
80
|
"username": "usuario",
|
|
68
81
|
"password": "senha",
|
|
69
82
|
"database": "meubanco",
|
|
70
|
-
"ssl": false
|
|
83
|
+
"ssl": false,
|
|
84
|
+
"connectTimeoutMs": 15000
|
|
71
85
|
},
|
|
72
86
|
"connections": {
|
|
73
87
|
"desenvolvimento": {
|
|
@@ -76,7 +90,8 @@ O arquivo de configuração permite definir o idioma da CLI, diretórios de saí
|
|
|
76
90
|
"port": 3306,
|
|
77
91
|
"username": "root",
|
|
78
92
|
"password": "password",
|
|
79
|
-
"database": "dev_db"
|
|
93
|
+
"database": "dev_db",
|
|
94
|
+
"connectTimeoutMs": 15000
|
|
80
95
|
},
|
|
81
96
|
"producao": {
|
|
82
97
|
"type": "postgres",
|
|
@@ -85,12 +100,32 @@ O arquivo de configuração permite definir o idioma da CLI, diretórios de saí
|
|
|
85
100
|
"username": "admin",
|
|
86
101
|
"password": "secure_password",
|
|
87
102
|
"database": "prod_db",
|
|
88
|
-
"ssl": true
|
|
103
|
+
"ssl": true,
|
|
104
|
+
"connectTimeoutMs": 15000
|
|
89
105
|
}
|
|
90
106
|
}
|
|
91
107
|
}
|
|
92
108
|
```
|
|
93
109
|
|
|
110
|
+
### Configuração de Verificação de Versão
|
|
111
|
+
|
|
112
|
+
Você pode configurar a verificação automática de versão no `dbutility.config.json`.
|
|
113
|
+
|
|
114
|
+
```json
|
|
115
|
+
{
|
|
116
|
+
"versionCheck": {
|
|
117
|
+
"enabled": true,
|
|
118
|
+
"frequency": "daily"
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
- **`enabled`** (boolean): Defina como `true` para ativar a verificação de versão, `false` para desativar. Padrão: `true`.
|
|
124
|
+
- **`frequency`** (string): Com que frequência verificar atualizações.
|
|
125
|
+
- `"daily"`: Uma vez por dia (padrão).
|
|
126
|
+
- `"weekly"`: Uma vez por semana.
|
|
127
|
+
- `"monthly"`: Uma vez por mês.
|
|
128
|
+
|
|
94
129
|
### Configuração Avançada de Extração de Dados
|
|
95
130
|
|
|
96
131
|
A opção `dataTables` permite especificar quais tabelas devem ter seus dados exportados (para seeds). Você pode fornecer uma lista simples de nomes de tabelas ou um objeto com uma cláusula `where` para filtrar os dados.
|
|
@@ -168,6 +203,7 @@ DB_PORT=5432
|
|
|
168
203
|
DB_USER=usuario
|
|
169
204
|
DB_PASSWORD=senha
|
|
170
205
|
DB_NAME=meubanco
|
|
206
|
+
DB_CONNECT_TIMEOUT_MS=15000
|
|
171
207
|
```
|
|
172
208
|
|
|
173
209
|
## Comandos e Flags da CLI
|
|
@@ -183,7 +219,7 @@ DB_NAME=meubanco
|
|
|
183
219
|
| `-v, --version` | Exibe o número da versão |
|
|
184
220
|
| `-h, --help` | Exibe ajuda para o comando |
|
|
185
221
|
|
|
186
|
-
### Opções de Conexão (Disponíveis para `connect`, `introspect`, `
|
|
222
|
+
### Opções de Conexão (Disponíveis para `connect`, `introspect`, `models`, `migrations`)
|
|
187
223
|
|
|
188
224
|
| Flag | Descrição |
|
|
189
225
|
| --------------------------- | ----------------------------------------------------- |
|
|
@@ -196,6 +232,7 @@ DB_NAME=meubanco
|
|
|
196
232
|
| `-p, --password <password>` | Senha do banco de dados |
|
|
197
233
|
| `-d, --database <database>` | Nome do banco de dados |
|
|
198
234
|
| `--ssl` | Habilita conexão SSL |
|
|
235
|
+
| `--connect-timeout <ms>` | Timeout de conexão (ms) |
|
|
199
236
|
|
|
200
237
|
### Comandos
|
|
201
238
|
|
|
@@ -215,18 +252,19 @@ Faz introspecção no esquema do banco de dados.
|
|
|
215
252
|
dbutility introspect [opções-conexão]
|
|
216
253
|
```
|
|
217
254
|
|
|
218
|
-
#### `
|
|
255
|
+
#### `models`
|
|
219
256
|
|
|
220
257
|
Exporta modelos para o ORM alvo.
|
|
221
258
|
|
|
222
259
|
```bash
|
|
223
|
-
dbutility
|
|
260
|
+
dbutility models --target <orm> [opções] [opções-conexão]
|
|
224
261
|
```
|
|
225
262
|
|
|
226
263
|
| Flag | Descrição | Obrigatório |
|
|
227
264
|
| ------------------- | ------------------------------------------------------- | ----------- |
|
|
228
265
|
| `--target <target>` | ORM alvo (`sequelize`, `typeorm`, `prisma`, `mongoose`) | Sim |
|
|
229
266
|
| `--output <dir>` | Diretório de saída | Não |
|
|
267
|
+
| `--test` | Executa testes nos models gerados | Não |
|
|
230
268
|
|
|
231
269
|
#### `migrations`
|
|
232
270
|
|
|
@@ -243,6 +281,7 @@ dbutility migrations --target <orm> [opções] [opções-conexão]
|
|
|
243
281
|
| `--data` | Gera migração de dados (seeds) junto com o esquema (Sobrescreve configuração) | Não |
|
|
244
282
|
| `--only-data` | Gera APENAS migração de dados | Não |
|
|
245
283
|
| `--tables <tables>` | Lista de tabelas separadas por vírgula para exportação de dados (Sobrescreve configuração) | Sim (se `--data` ou `--only-data` e não estiver na configuração) |
|
|
284
|
+
| `--test` | Executa o comando test após a geração das migrações | Não |
|
|
246
285
|
|
|
247
286
|
#### `test`
|
|
248
287
|
|
|
@@ -276,7 +315,13 @@ dbutility introspect --type postgres --host localhost --username usuario --passw
|
|
|
276
315
|
### Exportar modelos do Sequelize de uma conexão específica
|
|
277
316
|
|
|
278
317
|
```bash
|
|
279
|
-
dbutility
|
|
318
|
+
dbutility models --target sequelize --conn desenvolvimento --output ./src/models
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
### Exportar models e executar testes
|
|
322
|
+
|
|
323
|
+
```bash
|
|
324
|
+
dbutility models --target sequelize --conn desenvolvimento --test
|
|
280
325
|
```
|
|
281
326
|
|
|
282
327
|
### Gerar migrações do TypeORM de uma conexão específica
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { VersionCheckConfig } from '../config/AppConfig';
|
|
2
|
+
export declare class VersionChecker {
|
|
3
|
+
private readonly config;
|
|
4
|
+
private readonly currentVersion;
|
|
5
|
+
private readonly pkgName;
|
|
6
|
+
private readonly storageDir;
|
|
7
|
+
private readonly storagePath;
|
|
8
|
+
constructor(currentVersion: string, config?: VersionCheckConfig);
|
|
9
|
+
check(): Promise<boolean>;
|
|
10
|
+
private shouldCheck;
|
|
11
|
+
private updateLastCheck;
|
|
12
|
+
private hasInternetConnection;
|
|
13
|
+
private getLatestVersion;
|
|
14
|
+
private compareVersions;
|
|
15
|
+
private promptAndUpdate;
|
|
16
|
+
private performUpdate;
|
|
17
|
+
private isGlobalInstallation;
|
|
18
|
+
private detectPackageManager;
|
|
19
|
+
private reExecuteCommand;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=VersionChecker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VersionChecker.d.ts","sourceRoot":"","sources":["../../src/cli/VersionChecker.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAMzD,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqC;IAC7D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;gBAEzB,cAAc,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,kBAAkB;IAOzD,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC;IAsB/B,OAAO,CAAC,WAAW;IA2BnB,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,qBAAqB;IAa7B,OAAO,CAAC,gBAAgB;IAmBxB,OAAO,CAAC,eAAe;YAYT,eAAe;YAoBf,aAAa;IAkC3B,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,gBAAgB;CAIzB"}
|