Files

46 lines
1.7 KiB
JavaScript

/***********************************************************************************************************************************************************************
* File Name: db.config.js
* Type of Program: Configuration
* Description: Sequelize PostgreSQL connection instance.
* Reads credentials from environment variables and exposes a single
* authenticated Sequelize instance used across all models.
* Author: rgrgogu
* Date Created: Oct. 6, 2025
***********************************************************************************************************************************************************************
* HOW TO USE:
* const sequelize = require('./config/db.config');
* // Then use sequelize.define() or import your models directly.
***********************************************************************************************************************************************************************/
require('dotenv').config();
const { Sequelize } = require('sequelize');
const useSSL = process.env.DB_SSL !== 'false';
const sequelize = new Sequelize(
process.env.DB_NAME,
process.env.DB_USER,
process.env.DB_PASSWORD,
{
host: process.env.DB_HOST,
port: process.env.DB_PORT || 5432,
dialect: 'postgres',
dialectOptions: {
...(useSSL && {
ssl: {
require: true,
rejectUnauthorized: false, // or provide CA cert if strict
},
}),
},
// logging: process.env.NODE_ENV === 'development' ? console.log : false,
logging: false,
pool: {
max: 10,
min: 0,
acquire: 30000,
idle: 10000,
},
}
);
module.exports = sequelize;