Skip to content

Instantly share code, notes, and snippets.

@hc3
Forked from higordiego/mysql.js
Created November 10, 2017 14:21
Show Gist options
  • Save hc3/280a0777680b64cdeee207e9c0b9cde1 to your computer and use it in GitHub Desktop.
Save hc3/280a0777680b64cdeee207e9c0b9cde1 to your computer and use it in GitHub Desktop.
const Sequelize = require('sequelize')
const fs = require('fs')
const path = require('path')
let database = null
const loadModels = (sequelize) => {
const dir = path.join(__dirname, '../modules/models')
const models = []
fs.readdirSync(dir).forEach((file) => {
const modelDir = path.join(dir, file)
const model = sequelize.import(modelDir)
models[model.name] = model
})
Object.keys(models).forEach(function (object) {
if ('associate' in models[object]) {
models[object].associate(models)
};
})
return models
}
module.exports = (app) => {
if (!database) {
const config = app.config
const sequelize = new Sequelize(
config.database,
config.username,
config.password,
config.params
)
database = {
sequelize,
Sequelize,
models: {}
}
database.models = loadModels(sequelize)
sequelize.sync().done(() => database)
}
return database
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment