30 lines
1.4 KiB
JavaScript
30 lines
1.4 KiB
JavaScript
// ═══════════════════════════════════════════════════════════════════════════════
|
|
// V2 — PostgreSQL connection pool
|
|
//
|
|
// ЭТО: pg.Pool — единственное подключение к БД.
|
|
// ЗАЧЕМ: все модули (crud, queries, schema) используют один pool.
|
|
//
|
|
// ПЕРЕМЕННЫЕ ОКРУЖЕНИЯ (из основного .env):
|
|
// DB_HOST, DB_PORT, DB_NAME, DB_USER, DB_PASS
|
|
// ═══════════════════════════════════════════════════════════════════════════════
|
|
|
|
const { Pool } = require('pg');
|
|
const config = require('../config');
|
|
|
|
const pool = new Pool({
|
|
host: process.env.DB_HOST || 'localhost',
|
|
port: process.env.DB_PORT || 5432,
|
|
database: process.env.DB_NAME || 'ipwhitelist',
|
|
user: process.env.DB_USER || 'super',
|
|
password: process.env.DB_PASS || '',
|
|
ssl: process.env.DB_SSLMODE === 'require' ? { rejectUnauthorized: false } : false,
|
|
max: 10,
|
|
idleTimeoutMillis: 30000,
|
|
});
|
|
|
|
pool.on('error', (err) => {
|
|
console.error('[v2:db] pool error:', err.message);
|
|
});
|
|
|
|
module.exports = { pool };
|