Skip to content

Commit 04251bd

Browse files
Andela DeveloperAndela Developer
Andela Developer
authored and
Andela Developer
committed
chore(sequelize): setup sequelize
-ensure sequelize is configure properly [Finishes #14854220]
1 parent 5407410 commit 04251bd

File tree

5 files changed

+85
-4
lines changed

5 files changed

+85
-4
lines changed

.eslintrc

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
"no-param-reassign": 0,
1515
"comma-dangle": 0,
1616
"curly": ["error", "multi-line"],
17-
"import/no-unresolved": [2, { commonjs: true }],
17+
"import/no-unresolved": [0, { commonjs: true, amd: true }],
1818
"max-len": [2, 80, 2],
1919
"no-shadow": ["error", { "allow": ["req", "res", "err"] }],
2020
"valid-jsdoc": ["error", {

.sequelizerc

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
const path = require('path');
2+
3+
module.exports = {
4+
"config": path.resolve('./server/config', 'config.json'),
5+
"models-path": path.resolve('./server/models'),
6+
"seeders-path": path.resolve('./server/seeders'),
7+
"migrations-path": path.resolve('./server/migrations')
8+
};

package.json

+10-3
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,22 @@
1919
},
2020
"homepage": "https://github.com/iakhator/document-manager#readme",
2121
"dependencies": {
22+
"babel": "^6.23.0",
23+
"babel-cli": "^6.24.1",
24+
"babel-preset-es2015": "^6.24.1",
2225
"body-parser": "^1.17.2",
23-
"eslint": "^4.1.1",
26+
"eslint": "^3.19.0",
2427
"eslint-config-airbnb": "^15.0.2",
2528
"eslint-plugin-import": "^2.7.0",
2629
"express": "^4.15.3",
27-
"morgan": "^1.8.2"
30+
"morgan": "^1.8.2",
31+
"pg": "^6.4.0",
32+
"pg-hstore": "^2.3.2",
33+
"sequelize": "^4.2.1",
34+
"sequelize-cli": "^2.7.0"
2835
},
2936
"devDependencies": {
30-
"eslint": "^4.1.1",
37+
"eslint": "^3.19.0",
3138
"eslint-config-airbnb": "^15.0.2",
3239
"eslint-plugin-import": "^2.7.0"
3340
}

server/config/config.json

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
{
2+
"development": {
3+
"username": "andeladeveloper",
4+
"password": null,
5+
"database": "docmanager-dev",
6+
"host": "127.0.0.1",
7+
"port": 5432,
8+
"dialect": "postgres"
9+
},
10+
"test": {
11+
"username": "andeladeveloper",
12+
"password": null,
13+
"database": "docmanager-test",
14+
"host": "127.0.0.1",
15+
"port": 5432,
16+
"dialect": "postgres"
17+
},
18+
"production": {
19+
"username": "root",
20+
"password": null,
21+
"database": "database_production",
22+
"host": "127.0.0.1",
23+
"dialect": "postgres"
24+
}
25+
}

server/models/index.js

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

0 commit comments

Comments
 (0)