From 81934c708824872b16de1409a9bf05cd944cf6ef Mon Sep 17 00:00:00 2001 From: josedario87 Date: Fri, 21 Nov 2025 20:09:02 -0600 Subject: [PATCH] =?UTF-8?q?Fix:=20Ejecutar=20schema=20antes=20de=20seed=20?= =?UTF-8?q?en=20bot=C3=B3n=20de=20carga=20de=20datos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Endpoint seed-database ahora ejecuta 01_schema.sql primero - Luego ejecuta 02_seed.sql - Resuelve error cuando se presiona seed después de borrar BD - Schema tiene CREATE TABLE IF NOT EXISTS (idempotente) Flujo correcto: 1. Borrar BD → DROP TABLE de todo 2. Cargar datos → Crea tablas + inserta datos --- nuxt4/server/api/debug/seed-database.post.ts | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/nuxt4/server/api/debug/seed-database.post.ts b/nuxt4/server/api/debug/seed-database.post.ts index b258f1d..37d699e 100644 --- a/nuxt4/server/api/debug/seed-database.post.ts +++ b/nuxt4/server/api/debug/seed-database.post.ts @@ -22,13 +22,21 @@ export default defineEventHandler(async (event) => { const client = await getClient() try { - // Leer el archivo de seed + // Leer los archivos SQL + const schemaPath = join(process.cwd(), 'server', 'database', '01_schema.sql') const seedPath = join(process.cwd(), 'server', 'database', '02_seed.sql') + + const schemaSQL = await readFile(schemaPath, 'utf-8') const seedSQL = await readFile(seedPath, 'utf-8') await client.query('BEGIN') - // Ejecutar el script completo de seed + // Primero ejecutar schema (crea tablas si no existen) + console.log('📋 Ejecutando schema...') + await client.query(schemaSQL) + + // Luego ejecutar seed (inserta datos de ejemplo) + console.log('📋 Ejecutando seed...') await client.query(seedSQL) await client.query('COMMIT') @@ -37,7 +45,7 @@ export default defineEventHandler(async (event) => { return { success: true, - message: 'Datos de ejemplo cargados: 10 lotes, 7 operaciones, 16 relaciones', + message: 'Schema recreado y datos de ejemplo cargados: 10 lotes, 7 operaciones, 16 relaciones', } } catch (error) { await client.query('ROLLBACK')