@dbcube/cli 1.1.8 → 1.1.9
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/package.json
CHANGED
|
@@ -47,8 +47,6 @@ async function main() {
|
|
|
47
47
|
for (const config of configuredDatabases) {
|
|
48
48
|
console.log(`\n${chalk.blue('┌─')} Procesando base de datos: ${chalk.bold(config.name)} ${chalk.gray(`(${config.type})`)}`);
|
|
49
49
|
|
|
50
|
-
const schema = new Schema(config.name);
|
|
51
|
-
|
|
52
50
|
// Obtener nombres reales de los seeders desde los archivos .cube
|
|
53
51
|
const realSeeders = progress.extractSeederNamesFromCubes(cubeFiles);
|
|
54
52
|
|
|
@@ -57,21 +55,22 @@ async function main() {
|
|
|
57
55
|
continue;
|
|
58
56
|
}
|
|
59
57
|
|
|
60
|
-
|
|
61
|
-
console.log(` ${chalk.blue('├─')} Ejecutando
|
|
62
|
-
|
|
63
|
-
for (let i = 0; i < realSeeders.length; i++) {
|
|
64
|
-
const seederName = realSeeders[i];
|
|
65
|
-
await progress.showTableProgress(seederName, 'seeder');
|
|
66
|
-
totalSeedersProcessed++;
|
|
67
|
-
}
|
|
58
|
+
console.log(` ${chalk.blue('├─')} Seeders encontrados: ${chalk.cyan(realSeeders.join(', '))}`);
|
|
59
|
+
console.log(` ${chalk.blue('├─')} Ejecutando seeders...`);
|
|
68
60
|
|
|
69
|
-
// Ejecutar los seeders reales
|
|
70
|
-
|
|
61
|
+
// Ejecutar los seeders reales SIN animación para que se vean los mensajes del core
|
|
62
|
+
try {
|
|
63
|
+
const schema = new Schema(config.name);
|
|
71
64
|
await schema.executeSeeders();
|
|
72
|
-
|
|
65
|
+
|
|
66
|
+
console.log(` ${chalk.green('├─')} ✅ Seeders completados exitosamente`);
|
|
67
|
+
totalSeedersProcessed += realSeeders.length;
|
|
68
|
+
} catch (schemaError) {
|
|
69
|
+
console.log(` ${chalk.red('├─')} ❌ Error durante seeders: ${schemaError.message}`);
|
|
70
|
+
totalSeedersProcessed = 0;
|
|
71
|
+
}
|
|
73
72
|
|
|
74
|
-
console.log(` ${chalk.blue('└─')} ${chalk.green('✓')}
|
|
73
|
+
console.log(` ${chalk.blue('└─')} ${chalk.green('✓')} Procesamiento de ${config.name} completado`);
|
|
75
74
|
}
|
|
76
75
|
|
|
77
76
|
// Mostrar resumen
|
|
@@ -47,8 +47,6 @@ async function main() {
|
|
|
47
47
|
for (const config of configuredDatabases) {
|
|
48
48
|
console.log(`\n${chalk.blue('┌─')} Procesando base de datos: ${chalk.bold(config.name)} ${chalk.gray(`(${config.type})`)}`);
|
|
49
49
|
|
|
50
|
-
const schema = new Schema(config.name);
|
|
51
|
-
|
|
52
50
|
// Obtener nombres reales de las tablas desde los archivos .cube
|
|
53
51
|
const realTables = progress.extractTableNamesFromCubes(cubeFiles);
|
|
54
52
|
|
|
@@ -57,27 +55,27 @@ async function main() {
|
|
|
57
55
|
continue;
|
|
58
56
|
}
|
|
59
57
|
|
|
60
|
-
|
|
61
|
-
console.log(` ${chalk.blue('├─')} Ejecutando fresh
|
|
62
|
-
|
|
63
|
-
for (let i = 0; i < realTables.length; i++) {
|
|
64
|
-
const tableName = realTables[i];
|
|
65
|
-
await progress.showTableProgress(tableName, 'refresh');
|
|
66
|
-
totalTablesProcessed++;
|
|
67
|
-
}
|
|
58
|
+
console.log(` ${chalk.blue('├─')} Tablas encontradas: ${chalk.cyan(realTables.join(', '))}`);
|
|
59
|
+
console.log(` ${chalk.blue('├─')} Ejecutando fresh tables...`);
|
|
68
60
|
|
|
69
|
-
// Ejecutar el fresh real
|
|
70
|
-
|
|
61
|
+
// Ejecutar el fresh real SIN animación para que se vean los mensajes del core
|
|
62
|
+
try {
|
|
63
|
+
const schema = new Schema(config.name);
|
|
71
64
|
const result = await schema.freshTables();
|
|
72
65
|
|
|
73
66
|
if (result === null) {
|
|
74
|
-
|
|
67
|
+
console.log(` ${chalk.red('├─')} ❌ Error: Base de datos ${config.name} no existe o no es accesible`);
|
|
68
|
+
totalTablesProcessed = 0;
|
|
69
|
+
} else {
|
|
70
|
+
console.log(` ${chalk.green('├─')} ✅ Fresh completado exitosamente`);
|
|
71
|
+
totalTablesProcessed += realTables.length;
|
|
75
72
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
73
|
+
} catch (schemaError) {
|
|
74
|
+
console.log(` ${chalk.red('├─')} ❌ Error durante fresh: ${schemaError.message}`);
|
|
75
|
+
totalTablesProcessed = 0;
|
|
76
|
+
}
|
|
79
77
|
|
|
80
|
-
console.log(` ${chalk.blue('└─')} ${chalk.green('✓')}
|
|
78
|
+
console.log(` ${chalk.blue('└─')} ${chalk.green('✓')} Procesamiento de ${config.name} completado`);
|
|
81
79
|
}
|
|
82
80
|
|
|
83
81
|
// Mostrar resumen
|
|
@@ -47,8 +47,6 @@ async function main() {
|
|
|
47
47
|
for (const config of configuredDatabases) {
|
|
48
48
|
console.log(`\n${chalk.blue('┌─')} Procesando base de datos: ${chalk.bold(config.name)} ${chalk.gray(`(${config.type})`)}`);
|
|
49
49
|
|
|
50
|
-
const schema = new Schema(config.name);
|
|
51
|
-
|
|
52
50
|
// Obtener nombres reales de las tablas desde los archivos .cube
|
|
53
51
|
const realTables = progress.extractTableNamesFromCubes(cubeFiles);
|
|
54
52
|
|
|
@@ -57,21 +55,22 @@ async function main() {
|
|
|
57
55
|
continue;
|
|
58
56
|
}
|
|
59
57
|
|
|
60
|
-
|
|
61
|
-
console.log(` ${chalk.blue('├─')}
|
|
62
|
-
|
|
63
|
-
for (let i = 0; i < realTables.length; i++) {
|
|
64
|
-
const tableName = realTables[i];
|
|
65
|
-
await progress.showTableProgress(tableName, 'refresh');
|
|
66
|
-
totalTablesProcessed++;
|
|
67
|
-
}
|
|
58
|
+
console.log(` ${chalk.blue('├─')} Tablas encontradas: ${chalk.cyan(realTables.join(', '))}`);
|
|
59
|
+
console.log(` ${chalk.blue('├─')} Ejecutando refresh tables...`);
|
|
68
60
|
|
|
69
|
-
// Ejecutar el refresh real
|
|
70
|
-
|
|
61
|
+
// Ejecutar el refresh real SIN animación para que se vean los mensajes del core
|
|
62
|
+
try {
|
|
63
|
+
const schema = new Schema(config.name);
|
|
71
64
|
await schema.refreshTables();
|
|
72
|
-
|
|
65
|
+
|
|
66
|
+
console.log(` ${chalk.green('├─')} ✅ Refresh completado exitosamente`);
|
|
67
|
+
totalTablesProcessed += realTables.length;
|
|
68
|
+
} catch (schemaError) {
|
|
69
|
+
console.log(` ${chalk.red('├─')} ❌ Error durante refresh: ${schemaError.message}`);
|
|
70
|
+
totalTablesProcessed = 0;
|
|
71
|
+
}
|
|
73
72
|
|
|
74
|
-
console.log(` ${chalk.blue('└─')} ${chalk.green('✓')}
|
|
73
|
+
console.log(` ${chalk.blue('└─')} ${chalk.green('✓')} Procesamiento de ${config.name} completado`);
|
|
75
74
|
}
|
|
76
75
|
|
|
77
76
|
// Mostrar resumen
|
|
@@ -47,8 +47,6 @@ async function main() {
|
|
|
47
47
|
for (const config of configuredDatabases) {
|
|
48
48
|
console.log(`\n${chalk.blue('┌─')} Procesando base de datos: ${chalk.bold(config.name)} ${chalk.gray(`(${config.type})`)}`);
|
|
49
49
|
|
|
50
|
-
const schema = new Schema(config.name);
|
|
51
|
-
|
|
52
50
|
// Obtener nombres reales de los triggers desde los archivos .cube
|
|
53
51
|
const realTriggers = progress.extractTriggerNamesFromCubes(cubeFiles);
|
|
54
52
|
|
|
@@ -57,21 +55,22 @@ async function main() {
|
|
|
57
55
|
continue;
|
|
58
56
|
}
|
|
59
57
|
|
|
60
|
-
|
|
61
|
-
console.log(` ${chalk.blue('├─')} Ejecutando
|
|
62
|
-
|
|
63
|
-
for (let i = 0; i < realTriggers.length; i++) {
|
|
64
|
-
const triggerName = realTriggers[i];
|
|
65
|
-
await progress.showTableProgress(triggerName, 'trigger');
|
|
66
|
-
totalTriggersProcessed++;
|
|
67
|
-
}
|
|
58
|
+
console.log(` ${chalk.blue('├─')} Triggers encontrados: ${chalk.cyan(realTriggers.join(', '))}`);
|
|
59
|
+
console.log(` ${chalk.blue('├─')} Ejecutando triggers...`);
|
|
68
60
|
|
|
69
|
-
// Ejecutar los triggers reales
|
|
70
|
-
|
|
61
|
+
// Ejecutar los triggers reales SIN animación para que se vean los mensajes del core
|
|
62
|
+
try {
|
|
63
|
+
const schema = new Schema(config.name);
|
|
71
64
|
await schema.executeTriggers();
|
|
72
|
-
|
|
65
|
+
|
|
66
|
+
console.log(` ${chalk.green('├─')} ✅ Triggers completados exitosamente`);
|
|
67
|
+
totalTriggersProcessed += realTriggers.length;
|
|
68
|
+
} catch (schemaError) {
|
|
69
|
+
console.log(` ${chalk.red('├─')} ❌ Error durante triggers: ${schemaError.message}`);
|
|
70
|
+
totalTriggersProcessed = 0;
|
|
71
|
+
}
|
|
73
72
|
|
|
74
|
-
console.log(` ${chalk.blue('└─')} ${chalk.green('✓')}
|
|
73
|
+
console.log(` ${chalk.blue('└─')} ${chalk.green('✓')} Procesamiento de ${config.name} completado`);
|
|
75
74
|
}
|
|
76
75
|
|
|
77
76
|
// Mostrar resumen
|
|
@@ -153,22 +153,28 @@ class ProgressIndicator {
|
|
|
153
153
|
try {
|
|
154
154
|
const content = fs.readFileSync(filePath, 'utf8');
|
|
155
155
|
|
|
156
|
-
//
|
|
157
|
-
|
|
156
|
+
// Patrón principal: @meta({ name: "nombre_tabla"; }) o @meta({ name: 'nombre_tabla'; })
|
|
157
|
+
const metaMatch = content.match(/@meta\s*\(\s*\{\s*name\s*:\s*["']([^"']+)["']\s*;?\s*[^}]*\}\s*\)/);
|
|
158
|
+
if (metaMatch) {
|
|
159
|
+
tableNames.push(metaMatch[1]);
|
|
160
|
+
continue;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
// Patrón alternativo: @table("nombre_tabla") o @table('nombre_tabla')
|
|
158
164
|
const tableMatch = content.match(/@table\(\s*["']([^"']+)["']\s*\)/);
|
|
159
165
|
if (tableMatch) {
|
|
160
166
|
tableNames.push(tableMatch[1]);
|
|
161
167
|
continue;
|
|
162
168
|
}
|
|
163
169
|
|
|
164
|
-
// Patrón
|
|
170
|
+
// Patrón 3: table: "nombre_tabla" o table: 'nombre_tabla'
|
|
165
171
|
const tableMatch2 = content.match(/table\s*:\s*["']([^"']+)["']/);
|
|
166
172
|
if (tableMatch2) {
|
|
167
173
|
tableNames.push(tableMatch2[1]);
|
|
168
174
|
continue;
|
|
169
175
|
}
|
|
170
176
|
|
|
171
|
-
//
|
|
177
|
+
// Fallback: usar el nombre del archivo sin la extensión .cube
|
|
172
178
|
const fileName = path.basename(filePath, '.table.cube');
|
|
173
179
|
if (fileName && fileName !== 'table') {
|
|
174
180
|
// Si el archivo tiene un número al principio, quitarlo
|
|
@@ -188,7 +194,7 @@ class ProgressIndicator {
|
|
|
188
194
|
}
|
|
189
195
|
}
|
|
190
196
|
|
|
191
|
-
return tableNames;
|
|
197
|
+
return [...new Set(tableNames)]; // Eliminar duplicados
|
|
192
198
|
}
|
|
193
199
|
|
|
194
200
|
/**
|