diff --git a/nuxt4/server/api/debug/seed-database.post.ts b/nuxt4/server/api/debug/seed-database.post.ts index 37d699e..f03d925 100644 --- a/nuxt4/server/api/debug/seed-database.post.ts +++ b/nuxt4/server/api/debug/seed-database.post.ts @@ -31,21 +31,44 @@ export default defineEventHandler(async (event) => { await client.query('BEGIN') - // Primero ejecutar schema (crea tablas si no existen) - console.log('📋 Ejecutando schema...') - await client.query(schemaSQL) + // Verificar si las tablas existen + const tablesExist = await client.query(` + SELECT EXISTS ( + SELECT FROM information_schema.tables + WHERE table_schema = 'public' + AND table_name = 'lotes' + ) as exists + `) - // Luego ejecutar seed (inserta datos de ejemplo) - console.log('📋 Ejecutando seed...') + const needsSchema = !tablesExist.rows[0].exists + + if (needsSchema) { + // Si no existen las tablas, ejecutar schema completo + console.log('📋 Las tablas no existen. Creando schema...') + await client.query(schemaSQL) + } else { + console.log('📋 Las tablas ya existen. Limpiando datos existentes...') + // Si las tablas existen, limpiar datos antes de cargar seed + await client.query('TRUNCATE TABLE operacion_lotes CASCADE') + await client.query('TRUNCATE TABLE operaciones CASCADE') + await client.query('TRUNCATE TABLE lotes CASCADE') + } + + // Ejecutar seed (inserta datos de ejemplo) + console.log('📋 Cargando datos de ejemplo...') await client.query(seedSQL) await client.query('COMMIT') console.log('✅ Datos de ejemplo cargados exitosamente') + const message = needsSchema + ? 'Schema creado y datos de ejemplo cargados exitosamente' + : 'Datos existentes limpiados y datos de ejemplo cargados exitosamente' + return { success: true, - message: 'Schema recreado y datos de ejemplo cargados: 10 lotes, 7 operaciones, 16 relaciones', + message, } } catch (error) { await client.query('ROLLBACK')