Fix: Resolver problemas de inicialización y seed de BD
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m4s

Soluciones implementadas:

1. Copiar archivos SQL al contenedor Docker
   - Agregar COPY de server/database/ en Dockerfile
   - Permite que endpoint seed-database encuentre 02_seed.sql

2. Aumentar timeout de conexión PostgreSQL
   - connectionTimeoutMillis: 2000 -> 10000 (10 segundos)
   - Evita errores de autenticación en primera carga

3. Reducir logs en producción
   - Solo mostrar 'Nueva conexión' en desarrollo
   - Reduce ruido en logs de producción
This commit is contained in:
2025-11-21 20:02:35 -06:00
parent fdb01ecb0c
commit e5b2331922
3 changed files with 14 additions and 4 deletions

View File

@@ -23,6 +23,9 @@ WORKDIR /app
# Copy built application from builder stage
COPY --from=builder /app/.output /app/.output
# Copy SQL files for seed endpoint
COPY --from=builder /app/server/database /app/server/database
# Expose port
EXPOSE 3000

View File

@@ -13,3 +13,7 @@ if ! grep -q "host all all all md5" "$PGDATA/pg_hba.conf"; then
fi
echo "✓ Configuración de autenticación aplicada (md5)"
# Nota: No es necesario recargar aquí porque este script corre ANTES
# de que PostgreSQL termine su inicialización. Los cambios se aplican
# automáticamente cuando PostgreSQL termina de iniciarse.

View File

@@ -18,7 +18,7 @@ export function getPool(): pg.Pool {
port: parseInt(process.env.POSTGRES_PORT || '5432'),
max: 20, // máximo de conexiones en el pool
idleTimeoutMillis: 30000,
connectionTimeoutMillis: 2000,
connectionTimeoutMillis: 10000, // Aumentado a 10s para la primera conexión
}
pool = new Pool(config)
@@ -27,9 +27,12 @@ export function getPool(): pg.Pool {
console.error('Error inesperado en el pool de PostgreSQL:', err)
})
pool.on('connect', () => {
console.log('Nueva conexión establecida con PostgreSQL')
})
// Solo log en desarrollo para reducir ruido
if (process.env.NODE_ENV !== 'production') {
pool.on('connect', () => {
console.log('Nueva conexión establecida con PostgreSQL')
})
}
}
return pool