Просмотр исходного кода

stop trying to put values from environment variables into the DB

utsushiiro 7 лет назад
Родитель
Сommit
7b5ef91978
1 измененных файлов с 18 добавлено и 20 удалено
  1. 18 20
      src/server/service/config-loader.js

+ 18 - 20
src/server/service/config-loader.js

@@ -11,7 +11,7 @@ const debug = require('debug')('growi:models:config');
  * - PASSWORD_SEED
  * - SECRET_TOKEN
  */
-const ENV_VAR_NAME_TO_KEY_MAP = {
+const ENV_VAR_NAME_TO_CONFIG_KEY_MAP = {
   /*
    * The commented out item has not yet entered the migration work.
    * So, key names of these are under consideration.
@@ -41,8 +41,18 @@ class ConfigLoader {
   }
 
   async load() {
-    await this.integrateEnvVars();
+    const configFromDB = this.loadFromDB();
+    const configFromEnvVars = this.loadFromEnvVars();
 
+    this.configModel.setupConfigFormData('crowi', configFromDB);
+
+    return {
+      fromDB: configFromDB,
+      fromEnvVars: configFromEnvVars
+    };
+  }
+
+  async loadFromDB() {
     const config = {};
     const docs = await this.configModel.find().exec();
 
@@ -52,28 +62,16 @@ class ConfigLoader {
       }
       config[doc.ns][doc.key] = JSON.parse(doc.value);
     }
-
-    this.configModel.setupConfigFormData('crowi', config);
-
     return config;
   }
 
-  async integrateEnvVars() {
-    for (const ENV_VAR_NAME of Object.keys(ENV_VAR_NAME_TO_KEY_MAP)) {
-      try {
-        await this.configModel.findOneAndUpdate(
-          {ns: 'crowi', key: ENV_VAR_NAME_TO_KEY_MAP[ENV_VAR_NAME]},
-          {ns: 'crowi', key: ENV_VAR_NAME_TO_KEY_MAP[ENV_VAR_NAME], value: JSON.stringify(process.env[ENV_VAR_NAME]), from_env: true},
-          {upsert: true},
-          (err, config) => {
-            debug('Config.findAndUpdate', err, config);
-          }
-        );
-      }
-      catch (e) {
-        debug('Config.findAndUpdate', e);
-      }
+  loadFromEnvVars() {
+    const config = {};
+    config.crowi = {};
+    for (const ENV_VAR_NAME of Object.keys(ENV_VAR_NAME_TO_CONFIG_KEY_MAP)) {
+      config.crowi[ENV_VAR_NAME_TO_CONFIG_KEY_MAP[ENV_VAR_NAME]] = process.env[ENV_VAR_NAME];
     }
+    return config;
   }
 }