const fs = require('fs') const path = require('path') const Sequelize = require('sequelize') const basename = path.basename(__filename) const config = require('config') const consola = require('consola') const db = {} let sequelize = null try { sequelize = new Sequelize(config.db) } catch (e) { consola.warn(` ⚠️ Cannot connect to db, check your configuration => ${e}`) process.exit(-1) } sequelize.authenticate().catch(e => { consola.error(' ⚠ Error connecting to DB: ', String(e)) process.exit(-1) }) fs .readdirSync(__dirname) .filter(file => { return (file.indexOf('.') !== 0) && (file !== basename) && (file.slice(-3) === '.js') }) .forEach(file => { const 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