import pkg from 'pg' import dotenv from 'dotenv' dotenv.config() const { Pool } = pkg // Support both connection string (Supabase) and individual parameters let poolConfig if (process.env.DATABASE_URL) { // Use connection string (Supabase format) poolConfig = { connectionString: process.env.DATABASE_URL, ssl: { rejectUnauthorized: false // Supabase requires SSL }, // Connection pool settings for Supabase max: 20, // Maximum number of clients in the pool idleTimeoutMillis: 30000, connectionTimeoutMillis: 2000, } } else { // Use individual parameters (local development) poolConfig = { host: process.env.DB_HOST || 'localhost', port: process.env.DB_PORT || 5432, database: process.env.DB_NAME || 'blog_editor', user: process.env.DB_USER || 'postgres', password: process.env.DB_PASSWORD, ssl: process.env.NODE_ENV === 'production' ? { rejectUnauthorized: false } : false, } } export const pool = new Pool(poolConfig) pool.on('error', (err) => { console.error('Unexpected error on idle client', err) process.exit(-1) })