app2-api/core/models.js
2019-11-02 23:16:58 +01:00

59 lines
1.3 KiB
JavaScript

const glob = require('glob');
const path = require('path');
const Sequelize = require('sequelize');
const config = require('../config');
const log = require('./logger');
const modulesDir = path.resolve(__dirname + '/../modules/')
const globOptions = {
cwd: modulesDir,
nocase: true,
nodir: true,
absolute: true,
}
log.info('Configurando DB.');
const db = {};
const sequelize = new Sequelize(
config.database.database,
config.database.username,
config.database.password,
config.database, {
dialect: 'mysql',
operatorAliases: false,
logging: config.debug,
define: {
charset: 'utf8',
collate: 'utf8_general_ci',
},
pool: {
max: 140,
min: 0,
idle: 10000
}
}
);
try {
db.sequelize = sequelize;
db.Sequelize = Sequelize;
glob.sync("**/*.model.js", globOptions)
.forEach(function (file) {
var model = sequelize.import(file);
log.info('Loading "' + model.name + '" model.');
db[model.name] = model;
});
Object.keys(db).forEach(function (modelName) {
if (db[modelName].associate) {
db[modelName].associate(db);
}
});
} catch (error) {
console.error(error);
}
module.exports = db;