]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/initializers/installer.ts
Fix database benchmark in prod mode
[github/Chocobozzz/PeerTube.git] / server / initializers / installer.ts
index 1ec24c4ade1555aeb1bb7da536906e76656669e3..10b74b85fd50cb8b2334f52716d4e4fc2522b21d 100644 (file)
@@ -1,15 +1,14 @@
-import { join } from 'path'
-import * as config from 'config'
 import * as passwordGenerator from 'password-generator'
 import * as Promise from 'bluebird'
 
 import { database as db } from './database'
-import { USER_ROLES, CONFIG, LAST_MIGRATION_VERSION } from './constants'
+import { USER_ROLES, CONFIG, LAST_MIGRATION_VERSION, CACHE } from './constants'
 import { clientsExist, usersExist } from './checker'
-import { logger, createCertsIfNotExist, root, mkdirpPromise } from '../helpers'
+import { logger, createCertsIfNotExist, mkdirpPromise, rimrafPromise } from '../helpers'
 
 function installApplication () {
   return db.sequelize.sync()
+    .then(() => removeCacheDirectories())
     .then(() => createDirectoriesIfNotExist())
     .then(() => createCertsIfNotExist())
     .then(() => createOAuthClientIfNotExist())
@@ -24,20 +23,41 @@ export {
 
 // ---------------------------------------------------------------------------
 
+function removeCacheDirectories () {
+  const cacheDirectories = CACHE.DIRECTORIES
+
+  const tasks = []
+
+  // Cache directories
+  Object.keys(cacheDirectories).forEach(key => {
+    const dir = cacheDirectories[key]
+    tasks.push(rimrafPromise(dir))
+  })
+
+  return Promise.all(tasks)
+}
+
 function createDirectoriesIfNotExist () {
-  const storages = config.get('storage')
+  const storage = CONFIG.STORAGE
+  const cacheDirectories = CACHE.DIRECTORIES
 
   const tasks = []
-  Object.keys(storages).forEach(key => {
-    const dir = storages[key]
-    tasks.push(mkdirpPromise(join(root(), dir)))
+  Object.keys(storage).forEach(key => {
+    const dir = storage[key]
+    tasks.push(mkdirpPromise(dir))
+  })
+
+  // Cache directories
+  Object.keys(cacheDirectories).forEach(key => {
+    const dir = cacheDirectories[key]
+    tasks.push(mkdirpPromise(dir))
   })
 
   return Promise.all(tasks)
 }
 
 function createOAuthClientIfNotExist () {
-  return clientsExist().then(exist => {
+  return clientsExist(db.OAuthClient).then(exist => {
     // Nothing to do, clients already exist
     if (exist === true) return undefined
 
@@ -62,7 +82,7 @@ function createOAuthClientIfNotExist () {
 }
 
 function createOAuthAdminIfNotExist () {
-  return usersExist().then(exist => {
+  return usersExist(db.User).then(exist => {
     // Nothing to do, users already exist
     if (exist === true) return undefined
 
@@ -92,7 +112,8 @@ function createOAuthAdminIfNotExist () {
       username,
       email,
       password,
-      role
+      role,
+      videoQuota: -1
     }
 
     return db.User.create(userData, createOptions).then(createdUser => {