| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- 'use strict'
- const fs = require('fs')
- const path = require('path')
- const Sequelize = require('sequelize')
- const basename = path.basename(__filename)
- const config = require('../config/config.json')[
- process.env.NODE_ENV || 'development'
- ]
- const db = {}
- let sequelize
- if (config.use_env_variable) {
- sequelize = new Sequelize(process.env[config.use_env_variable], config)
- } else {
- sequelize = new Sequelize(
- config.database,
- config.username,
- config.password,
- config
- )
- }
- fs.readdirSync(__dirname)
- .filter((file) => {
- return (
- file.indexOf('.') !== 0 && file !== basename && file.slice(-3) === '.js'
- )
- })
- .forEach((file) => {
- const model = require(path.join(__dirname, file))(
- sequelize,
- Sequelize.DataTypes
- )
- 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
|