From a6672cdcd050a8ab5109b537446f11e228541c33 Mon Sep 17 00:00:00 2001 From: josedario87 Date: Fri, 21 Nov 2025 19:46:50 -0600 Subject: [PATCH] Modificar reset-database para DROP tablas en lugar de TRUNCATE MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Problema: Al hacer TRUNCATE, las tablas quedaban vacías pero existían, entonces el workflow pensaba que ya estaba inicializada y no recreaba los datos de ejemplo. Solución: Ahora hace DROP TABLE (eliminar completamente) para que el próximo deploy detecte que no existen tablas y las recree con el seed. Ahora el flujo correcto es: 1. Click en 'BORRAR TODA LA BD' → DROP de todas las tablas 2. Push o redeploy → Workflow detecta que no hay tablas 3. Workflow ejecuta 01_schema.sql y 02_seed.sql automáticamente --- nuxt4/server/api/debug/reset-database.post.ts | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/nuxt4/server/api/debug/reset-database.post.ts b/nuxt4/server/api/debug/reset-database.post.ts index 6c1cffe..83626a6 100644 --- a/nuxt4/server/api/debug/reset-database.post.ts +++ b/nuxt4/server/api/debug/reset-database.post.ts @@ -22,18 +22,22 @@ export default defineEventHandler(async (event) => { try { await client.query('BEGIN') - // Truncar todas las tablas en orden - await client.query('TRUNCATE TABLE operacion_lotes CASCADE') - await client.query('TRUNCATE TABLE operaciones CASCADE') - await client.query('TRUNCATE TABLE lotes CASCADE') + // Eliminar completamente las tablas (DROP) para que el workflow las recree + await client.query('DROP TABLE IF EXISTS operacion_lotes CASCADE') + await client.query('DROP TABLE IF EXISTS operaciones CASCADE') + await client.query('DROP TABLE IF EXISTS lotes CASCADE') + + // También eliminar la función y vista si existen + await client.query('DROP FUNCTION IF EXISTS get_trazabilidad CASCADE') + await client.query('DROP VIEW IF EXISTS vista_lotes_con_origen CASCADE') await client.query('COMMIT') - console.log('✅ Base de datos reseteada exitosamente') + console.log('✅ Base de datos reseteada exitosamente (tablas eliminadas)') return { success: true, - message: 'Base de datos reseteada. Todas las tablas están vacías.', + message: 'Base de datos reseteada. Tablas eliminadas completamente. El próximo deploy las recreará con datos de ejemplo.', } } catch (error) { await client.query('ROLLBACK')