Agregar retry logic para conexión inicial a PostgreSQL
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m4s

- Implementar 5 reintentos con 2s de delay entre cada uno
- Resolver error de autenticación en primera carga
- PostgreSQL necesita tiempo para ejecutar 00_configure_auth.sh
- App ahora espera automáticamente hasta que auth esté configurado

Esto resuelve el error 28P01 (password authentication failed)
que ocurría solo en la primera conexión después del deploy.
This commit is contained in:
2025-11-21 20:04:42 -06:00
parent e5b2331922
commit 2d532e42c6

View File

@@ -23,6 +23,7 @@ export function getPool(): pg.Pool {
pool = new Pool(config)
// Manejo de errores del pool
pool.on('error', (err) => {
console.error('Error inesperado en el pool de PostgreSQL:', err)
})
@@ -33,6 +34,27 @@ export function getPool(): pg.Pool {
console.log('Nueva conexión establecida con PostgreSQL')
})
}
// Verificar conexión inicial con retry
let retries = 5
const tryConnect = async () => {
try {
const client = await pool!.connect()
console.log('✅ Conexión inicial a PostgreSQL exitosa')
client.release()
} catch (err: any) {
retries--
if (retries > 0) {
console.log(`⚠️ Conexión a PostgreSQL falló, reintentando... (${retries} intentos restantes)`)
setTimeout(tryConnect, 2000) // Reintentar en 2 segundos
} else {
console.error('❌ No se pudo conectar a PostgreSQL después de varios intentos:', err.message)
}
}
}
// Ejecutar verificación inicial en background
tryConnect()
}
return pool