UNPKG

@defra/wls-connectors-lib

Version:

A library extracting the various connectivity functions for the wildlife service

58 lines (50 loc) 1.52 kB
import Config from './config.js' import pkg from 'sequelize' import db from 'debug' const { Sequelize, Transaction, DataTypes, QueryTypes } = pkg const debug = db('connectors-lib:db') let sequelize export const SEQUELIZE = { getSequelize: () => sequelize, initialiseConnection: async () => { debug(`Db host: ${Config.pg.host}`) debug(`Db port: ${Config.pg.port}`) sequelize = new Sequelize(Config.pg.database, Config.pg.user, Config.pg.pw, { dialect: 'postgres', ...(process.env?.POSTGRES_NOSSL !== 'true' && { dialectOptions: { ssl: { require: true, rejectUnauthorized: false } } }), host: Config.pg.host, port: Config.pg.port, logging: Config.pg.logging === 'true' ? console.log : false, native: false, define: { underscored: true, charset: 'utf8', timestamps: false }, // similar for sync: you can define this to always force sync for models sync: { force: true }, // pool configuration used to pool database connections pool: { max: 10, idle: 30000, acquire: 120000 }, isolationLevel: Transaction.ISOLATION_LEVELS.REPEATABLE_READ }) sequelize.afterConnect(() => debug('Connected database')) sequelize.afterDisconnect(() => debug('Disconnected database')) return sequelize }, DataTypes, QueryTypes }