diff --git a/.sequelizerc b/.sequelizerc new file mode 100644 index 0000000..00a53e5 --- /dev/null +++ b/.sequelizerc @@ -0,0 +1,7 @@ +const path = require ('path'); +module.exports = { + 'config': path.resolve('config', 'config.js'), + 'models-path': path.resolve('', 'models'), + 'seeders-path': path.resolve('', 'seeders'), + 'migrations-path': path.resolve('', 'migrations') +} \ No newline at end of file diff --git a/config/config.js b/config/config.js new file mode 100644 index 0000000..0f858c6 --- /dev/null +++ b/config/config.js @@ -0,0 +1,23 @@ +{ + "development": { + "username": "root", + "password": null, + "database": "database_development", + "host": "127.0.0.1", + "dialect": "mysql" + }, + "test": { + "username": "root", + "password": null, + "database": "database_test", + "host": "127.0.0.1", + "dialect": "mysql" + }, + "production": { + "username": "root", + "password": null, + "database": "database_production", + "host": "127.0.0.1", + "dialect": "mysql" + } +} diff --git a/models/index.js b/models/index.js new file mode 100644 index 0000000..d2c6918 --- /dev/null +++ b/models/index.js @@ -0,0 +1,37 @@ +'use strict'; + +const fs = require('fs'); +const path = require('path'); +const Sequelize = require('sequelize'); +const basename = path.basename(__filename); +const env = process.env.NODE_ENV || 'development'; +const config = require(__dirname + '/../config/config.js')[env]; +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;