]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - server/initializers/database.js
Server: rename Pods -> Pod
[github/Chocobozzz/PeerTube.git] / server / initializers / database.js
CommitLineData
9f10b292 1'use strict'
8c308c2b 2
feb4bdfd
C
3const fs = require('fs')
4const path = require('path')
5const Sequelize = require('sequelize')
8c308c2b 6
e861452f 7const constants = require('../initializers/constants')
f0f5567b 8const logger = require('../helpers/logger')
8c308c2b 9
feb4bdfd
C
10const database = {}
11
12const 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
18const modelDirectory = path.join(__dirname, '..', 'models')
19fs.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
42database.sequelize = sequelize
43database.Sequelize = Sequelize
c45f7f84 44
9f10b292 45// ---------------------------------------------------------------------------
8c308c2b 46
9f10b292 47module.exports = database