'use strict'; /*Powered By: Manaknightdigital Inc. https://manaknightdigital.com/ Year: 2020*/ /** * Sequelize File * @copyright 2020 Manaknightdigital Inc. * @link https://manaknightdigital.com * @license Proprietary Software licensing * @author Ryan Wong * */ const fs = require('fs'); const path = require('path'); let Sequelize = require('sequelize'); const basename = path.basename(__filename); const dotenv = require('dotenv'); dotenv.config(); let db = {}; let sequelize = new Sequelize(process.env.DB_DATABASE, process.env.DB_USERNAME, process.env.DB_PASSWORD, { dialect: process.env.DB_ADAPTER, username: process.env.DB_USERNAME, password: process.env.DB_PASSWORD, database: process.env.DB_NAME, host: process.env.DB_HOSTNAME, port: process.env.DB_PORT, logging: console.log, timezone: '-04:00', pool: { maxConnections: 1, minConnections: 0, maxIdleTime: 100, }, define: { timestamps: false, underscoredAll: true, underscored: true, }, }); // sequelize.sync({ force: true }); fs.readdirSync(__dirname) .filter((file) => { return file.indexOf('.') !== 0 && file !== basename && file.slice(-3) === '.js'; }) .forEach((file) => { var model = sequelize['import'](path.join(__dirname, file)); db[model.name] = model; }); Object.keys(db).forEach((modelName) => { if (db[modelName].associate) { db[modelName].associate(db); } }); db.sequelize = sequelize; db.Sequelize = Sequelize; module.exports = db;