From d833744ba79f41aa7068cf85accd871c85cb1004 Mon Sep 17 00:00:00 2001 From: Alexander Hammer Date: Sat, 30 Apr 2022 21:34:33 +0200 Subject: [PATCH] sequelize-cli init --- .gitignore | 3 +++ config/config.json | 23 +++++++++++++++++++++++ models/index.js | 37 +++++++++++++++++++++++++++++++++++++ package.json | 4 +++- 4 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 config/config.json create mode 100644 models/index.js diff --git a/.gitignore b/.gitignore index d1bed12..88acef1 100644 --- a/.gitignore +++ b/.gitignore @@ -59,3 +59,6 @@ typings/ # next.js build output .next + +package-lock.json + diff --git a/config/config.json b/config/config.json new file mode 100644 index 0000000..0f858c6 --- /dev/null +++ b/config/config.json @@ -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..33f09e7 --- /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.json')[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; diff --git a/package.json b/package.json index b100f42..78fa020 100644 --- a/package.json +++ b/package.json @@ -6,11 +6,13 @@ "start": "node ./bin/www" }, "dependencies": { + "admin-lte": "^3.2.0", "cookie-parser": "~1.4.4", "debug": "~2.6.9", "express": "~4.16.1", "http-errors": "~1.6.3", "morgan": "~1.9.1", - "pug": "2.0.0-beta11" + "pug": "^3.0.2", + "sequelize": "^6.19.0" } }