@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.
Files changed (85) hide show
  1. package/README.es.md +98 -50
  2. package/README.md +52 -7
  3. package/README.pt-BR.md +52 -7
  4. package/dist/cli/VersionChecker.d.ts +21 -0
  5. package/dist/cli/VersionChecker.d.ts.map +1 -0
  6. package/dist/cli/VersionChecker.js +193 -0
  7. package/dist/cli/VersionChecker.js.map +1 -0
  8. package/dist/cli/helpers.js +4 -4
  9. package/dist/cli/helpers.js.map +1 -1
  10. package/dist/cli/index.js +86 -45
  11. package/dist/cli/index.js.map +1 -1
  12. package/dist/config/AppConfig.d.ts +5 -0
  13. package/dist/config/AppConfig.d.ts.map +1 -1
  14. package/dist/config/AppConfig.js +47 -24
  15. package/dist/config/AppConfig.js.map +1 -1
  16. package/dist/config/ConfigInitializer.d.ts.map +1 -1
  17. package/dist/config/ConfigInitializer.js +6 -5
  18. package/dist/config/ConfigInitializer.js.map +1 -1
  19. package/dist/config/ConfigLoader.d.ts +11 -0
  20. package/dist/config/ConfigLoader.d.ts.map +1 -1
  21. package/dist/config/ConfigLoader.js +120 -41
  22. package/dist/config/ConfigLoader.js.map +1 -1
  23. package/dist/database/SqlSafety.js +1 -1
  24. package/dist/database/SqlSafety.js.map +1 -1
  25. package/dist/database/connectors/MssqlConnector.d.ts +1 -2
  26. package/dist/database/connectors/MssqlConnector.d.ts.map +1 -1
  27. package/dist/database/connectors/MssqlConnector.js +13 -5
  28. package/dist/database/connectors/MssqlConnector.js.map +1 -1
  29. package/dist/database/connectors/MysqlConnector.d.ts +1 -1
  30. package/dist/database/connectors/MysqlConnector.d.ts.map +1 -1
  31. package/dist/database/connectors/MysqlConnector.js +14 -1
  32. package/dist/database/connectors/MysqlConnector.js.map +1 -1
  33. package/dist/database/connectors/PostgresConnector.d.ts +1 -1
  34. package/dist/database/connectors/PostgresConnector.d.ts.map +1 -1
  35. package/dist/database/connectors/PostgresConnector.js +3 -0
  36. package/dist/database/connectors/PostgresConnector.js.map +1 -1
  37. package/dist/errors/DbUtilityError.d.ts +1 -1
  38. package/dist/errors/DbUtilityError.d.ts.map +1 -1
  39. package/dist/errors/DbUtilityError.js.map +1 -1
  40. package/dist/generators/GeneratorWriter.js +8 -8
  41. package/dist/generators/GeneratorWriter.js.map +1 -1
  42. package/dist/generators/PrismaGenerator.js +2 -2
  43. package/dist/generators/PrismaGenerator.js.map +1 -1
  44. package/dist/generators/SequelizeGenerator.d.ts.map +1 -1
  45. package/dist/generators/SequelizeGenerator.js +24 -22
  46. package/dist/generators/SequelizeGenerator.js.map +1 -1
  47. package/dist/generators/TypeORMGenerator.js +6 -6
  48. package/dist/generators/TypeORMGenerator.js.map +1 -1
  49. package/dist/i18n/messages.d.ts +2 -0
  50. package/dist/i18n/messages.d.ts.map +1 -1
  51. package/dist/i18n/messages.js +6 -0
  52. package/dist/i18n/messages.js.map +1 -1
  53. package/dist/introspection/DataExtractor.d.ts +2 -2
  54. package/dist/introspection/DataExtractor.d.ts.map +1 -1
  55. package/dist/introspection/DataExtractor.js.map +1 -1
  56. package/dist/introspection/IntrospectionLogger.js +9 -9
  57. package/dist/introspection/IntrospectionLogger.js.map +1 -1
  58. package/dist/introspection/IntrospectionService.d.ts +2 -2
  59. package/dist/introspection/IntrospectionService.d.ts.map +1 -1
  60. package/dist/introspection/IntrospectionService.js.map +1 -1
  61. package/dist/introspection/PostgresIntrospector.d.ts.map +1 -1
  62. package/dist/introspection/PostgresIntrospector.js +1 -2
  63. package/dist/introspection/PostgresIntrospector.js.map +1 -1
  64. package/dist/testing/ContainerManager.js +3 -3
  65. package/dist/testing/ContainerManager.js.map +1 -1
  66. package/dist/testing/MigrationTester.d.ts +2 -2
  67. package/dist/testing/MigrationTester.d.ts.map +1 -1
  68. package/dist/testing/MigrationTester.js +25 -24
  69. package/dist/testing/MigrationTester.js.map +1 -1
  70. package/dist/testing/ModelTester.d.ts +15 -0
  71. package/dist/testing/ModelTester.d.ts.map +1 -0
  72. package/dist/testing/ModelTester.js +383 -0
  73. package/dist/testing/ModelTester.js.map +1 -0
  74. package/dist/testing/runners/SequelizeRunner.d.ts.map +1 -1
  75. package/dist/testing/runners/SequelizeRunner.js +11 -9
  76. package/dist/testing/runners/SequelizeRunner.js.map +1 -1
  77. package/dist/testing/runners/TypeORMRunner.d.ts.map +1 -1
  78. package/dist/testing/runners/TypeORMRunner.js +13 -11
  79. package/dist/testing/runners/TypeORMRunner.js.map +1 -1
  80. package/dist/types/database.d.ts +1 -0
  81. package/dist/types/database.d.ts.map +1 -1
  82. package/dist/utils/PackageManager.d.ts.map +1 -1
  83. package/dist/utils/PackageManager.js +10 -8
  84. package/dist/utils/PackageManager.js.map +1 -1
  85. 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 | Descripción |
175
- |------|-------------|
176
- | `--init` | Inicializa el archivo de configuración |
177
- | `-f, --force` | Fuerza la recreación del archivo de configuración si ya existe |
178
- | `-v, --version` | Muestra el número de la versión |
179
- | `-h, --help` | Muestra ayuda para el comando |
180
-
181
- ### Opciones de Conexión (Disponibles para `connect`, `introspect`, `export`, `migrate`)
182
-
183
- | Flag | Descripción |
184
- |------|-------------|
185
- | `--conn <name>` | Nombre de la conexión definida en el archivo de configuración |
186
- | `-c, --config <path>` | Ruta al archivo de configuración |
187
- | `-t, --type <type>` | Tipo de base de datos (`mysql`, `postgres`, `mssql`) |
188
- | `-H, --host <host>` | Host de la base de datos |
189
- | `-P, --port <port>` | Puerto de la base de datos |
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` | Habilita conexión 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
- #### `export`
248
+ #### `models`
214
249
 
215
250
  Exporta modelos para el ORM objetivo.
216
251
 
217
252
  ```bash
218
- dbutility export --target <orm> [opciones] [opciones-conexión]
253
+ dbutility models --target <orm> [opciones] [opciones-conexión]
219
254
  ```
220
255
 
221
- | Flag | Descripción | Obligatorio |
222
- |------|-------------|-------------|
223
- | `--target <target>` | ORM objetivo (`sequelize`, `typeorm`, `prisma`, `mongoose`) | Sí |
224
- | `--output <dir>` | Directorio de salida | No |
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 | Descripción | Obligatorio |
235
- |------|-------------|-------------|
236
- | `--target <target>` | ORM objetivo (`sequelize`, `typeorm`) | Sí |
237
- | `--output <dir>` | Directorio de salida | No |
238
- | `--data` | Genera migración de datos (seeds) junto con el esquema (Sobrescribe configuración) | No |
239
- | `--only-data` | Genera SOLO migración de datos | No |
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 | Descripción | Obligatorio |
251
- |------|-------------|-------------|
252
- | `--target <target>` | ORM objetivo (`sequelize`, `typeorm`) | Sí |
253
- | `--dir <dir>` | Directorio conteniendo las migraciones | No |
254
- | `--engines <engines>` | Imágenes Docker para probar (ej: `postgres:14,mysql:8`) | No |
255
- | `--backup` | Exporta backup de la base de datos del contenedor después de la prueba (Sobrescribe configuración) | No |
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 export --target sequelize --conn desarrollo --output ./src/models
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`, `export`, `migrate`)
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
- #### `export`
255
+ #### `models`
219
256
 
220
257
  Export models for target ORM.
221
258
 
222
259
  ```bash
223
- dbutility export --target <orm> [options] [connection-options]
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 export --target sequelize --conn development --output ./src/models
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`, `export`, `migration`)
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
- #### `export`
255
+ #### `models`
219
256
 
220
257
  Exporta modelos para o ORM alvo.
221
258
 
222
259
  ```bash
223
- dbutility export --target <orm> [opções] [opções-conexão]
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 export --target sequelize --conn desenvolvimento --output ./src/models
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"}