59 lines
1.3 KiB
JavaScript
59 lines
1.3 KiB
JavaScript
/**
|
|
* Configuración de conexión a PostgreSQL
|
|
*
|
|
* FASE 1: Infraestructura Base
|
|
*
|
|
* IMPORTANTE: Usar variables de entorno para credenciales
|
|
*/
|
|
|
|
import pg from 'pg';
|
|
import dotenv from 'dotenv';
|
|
|
|
dotenv.config();
|
|
|
|
const { Pool } = pg;
|
|
|
|
/**
|
|
* Pool de conexiones a PostgreSQL
|
|
*/
|
|
export const pool = new Pool({
|
|
host: process.env.DB_HOST || 'localhost',
|
|
port: parseInt(process.env.DB_PORT || '5432', 10),
|
|
database: process.env.DB_NAME || 'emerges_tes',
|
|
user: process.env.DB_USER || 'postgres',
|
|
password: process.env.DB_PASSWORD || '',
|
|
max: 20, // Máximo de conexiones en el pool
|
|
idleTimeoutMillis: 30000,
|
|
connectionTimeoutMillis: 2000,
|
|
});
|
|
|
|
/**
|
|
* Test de conexión
|
|
*/
|
|
export async function testConnection() {
|
|
try {
|
|
const result = await pool.query('SELECT NOW()');
|
|
console.log('✅ Conexión a PostgreSQL exitosa:', result.rows[0].now);
|
|
return true;
|
|
} catch (error) {
|
|
console.error('❌ Error conectando a PostgreSQL:', error.message);
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Función helper para ejecutar queries
|
|
* Envuelve pool.query para mantener compatibilidad
|
|
*/
|
|
export async function query(text, params) {
|
|
return await pool.query(text, params);
|
|
}
|
|
|
|
/**
|
|
* Cerrar pool de conexiones
|
|
*/
|
|
export async function closePool() {
|
|
await pool.end();
|
|
}
|
|
|