1"use strict";
2
3const fs = require("fs");
4const path = require("path");
5const Sequelize = require("sequelize");
6const basename = path.basename(__filename);
7const env = process.env.NODE_ENV || "development";
8const config = require(__dirname + "/../config/app.js")[env];
9const db = {};
10
11let sequelize;
12if (config.use_env_variable) {
13 sequelize = new Sequelize(process.env[config.use_env_variable], config);
14} else {
15 sequelize = new Sequelize(
16 config.database,
17 config.username,
18 config.password,
19 config,
20 );
21}
22
23fs.readdirSync(__dirname)
24 .filter((file) => {
25 return (
26 file.indexOf(".") !== 0 && file !== basename && file.slice(-3) === ".js"
27 );
28 })
29 .forEach((file) => {
30 // const model = sequelize['import'](path.join(__dirname, file));
31 const model = require(path.join(__dirname, file))(
32 sequelize,
33 Sequelize.DataTypes,
34 );
35 db[model.name] = model;
36 });
37
38Object.keys(db).forEach((modelName) => {
39 if (db[modelName].associate) {
40 db[modelName].associate(db);
41 }
42});
43
44db.sequelize = sequelize;
45db.Sequelize = Sequelize;
46
47module.exports = db;