]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/initializers/database.js
Videos likes/dislikes is implemented :)
[github/Chocobozzz/PeerTube.git] / server / initializers / database.js
index 9642231b94ff7308498e88aee8c893bb1cf07e0f..043152a0e33f95ac389f017b97e6cd10487efe43 100644 (file)
@@ -10,7 +10,11 @@ const utils = require('../helpers/utils')
 
 const database = {}
 
-const sequelize = new Sequelize(constants.CONFIG.DATABASE.DBNAME, 'peertube', 'peertube', {
+const dbname = constants.CONFIG.DATABASE.DBNAME
+const username = constants.CONFIG.DATABASE.USERNAME
+const password = constants.CONFIG.DATABASE.PASSWORD
+
+const sequelize = new Sequelize(dbname, username, password, {
   dialect: 'postgres',
   host: constants.CONFIG.DATABASE.HOSTNAME,
   port: constants.CONFIG.DATABASE.PORT,
@@ -26,33 +30,48 @@ const sequelize = new Sequelize(constants.CONFIG.DATABASE.DBNAME, 'peertube', 'p
   }
 })
 
-const modelDirectory = path.join(__dirname, '..', 'models')
-fs.readdir(modelDirectory, function (err, files) {
-  if (err) throw err
+database.sequelize = sequelize
+database.Sequelize = Sequelize
+database.init = init
 
-  files.filter(function (file) {
-    if (file === 'utils.js') return false
+// ---------------------------------------------------------------------------
 
-    return true
-  })
-  .forEach(function (file) {
-    const model = sequelize.import(path.join(modelDirectory, file))
+module.exports = database
 
-    database[model.name] = model
-  })
+// ---------------------------------------------------------------------------
 
-  Object.keys(database).forEach(function (modelName) {
-    if ('associate' in database[modelName]) {
-      database[modelName].associate(database)
-    }
-  })
+function init (silent, callback) {
+  if (!callback) {
+    callback = silent
+    silent = false
+  }
 
-  logger.info('Database is ready.')
-})
+  if (!callback) callback = function () {}
 
-database.sequelize = sequelize
-database.Sequelize = Sequelize
+  const modelDirectory = path.join(__dirname, '..', 'models')
+  fs.readdir(modelDirectory, function (err, files) {
+    if (err) throw err
 
-// ---------------------------------------------------------------------------
+    files.filter(function (file) {
+      // For all models but not utils.js
+      if (file === 'utils.js') return false
 
-module.exports = database
+      return true
+    })
+    .forEach(function (file) {
+      const model = sequelize.import(path.join(modelDirectory, file))
+
+      database[model.name] = model
+    })
+
+    Object.keys(database).forEach(function (modelName) {
+      if ('associate' in database[modelName]) {
+        database[modelName].associate(database)
+      }
+    })
+
+    if (!silent) logger.info('Database %s is ready.', dbname)
+
+    return callback(null)
+  })
+}