'use strict'; import fs from 'fs'; import path from 'path'; import Sequelize from 'sequelize'; import logger from '../logger'; const basename = path.basename(__filename); const env = process.env.NODE_ENV || 'development'; const config = require(__dirname + '/../../config/database')[env]; const db : any = {}; const sequelize = new Sequelize(config.url, { logging: !!process.env.DB_TRACING, dialect: 'postgres', pool: { max: 10, min: 1, acquire: 30000, idle: 10000 }, }); 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; export default db;