]>
Commit | Line | Data |
---|---|---|
9f10b292 | 1 | 'use strict' |
8c308c2b | 2 | |
feb4bdfd C |
3 | const fs = require('fs') |
4 | const path = require('path') | |
5 | const Sequelize = require('sequelize') | |
8c308c2b | 6 | |
e861452f | 7 | const constants = require('../initializers/constants') |
f0f5567b | 8 | const logger = require('../helpers/logger') |
8c308c2b | 9 | |
feb4bdfd C |
10 | const database = {} |
11 | ||
12 | const sequelize = new Sequelize(constants.CONFIG.DATABASE.DBNAME, 'peertube', 'peertube', { | |
13 | dialect: 'postgres', | |
14 | host: constants.CONFIG.DATABASE.HOSTNAME, | |
15 | port: constants.CONFIG.DATABASE.PORT | |
16 | }) | |
17 | ||
18 | const modelDirectory = path.join(__dirname, '..', 'models') | |
19 | fs.readdir(modelDirectory, function (err, files) { | |
20 | if (err) throw err | |
21 | ||
22 | files.filter(function (file) { | |
23 | if (file === 'utils.js') return false | |
24 | ||
25 | return true | |
9f10b292 | 26 | }) |
feb4bdfd C |
27 | .forEach(function (file) { |
28 | const model = sequelize.import(path.join(modelDirectory, file)) | |
c45f7f84 | 29 | |
feb4bdfd | 30 | database[model.name] = model |
9f10b292 | 31 | }) |
feb4bdfd C |
32 | |
33 | Object.keys(database).forEach(function (modelName) { | |
34 | if ('associate' in database[modelName]) { | |
35 | database[modelName].associate(database) | |
36 | } | |
37 | }) | |
38 | ||
39 | logger.info('Database is ready.') | |
40 | }) | |
41 | ||
42 | database.sequelize = sequelize | |
43 | database.Sequelize = Sequelize | |
c45f7f84 | 44 | |
9f10b292 | 45 | // --------------------------------------------------------------------------- |
8c308c2b | 46 | |
9f10b292 | 47 | module.exports = database |