"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(); 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;