Yuken Tezuka 3 лет назад
Родитель
Сommit
538b6b605a
2 измененных файлов с 36 добавлено и 30 удалено
  1. 10 3
      bin/data-migrations/v6/src/migration.js
  2. 26 27
      bin/data-migrations/v6/src/processor.js

+ 10 - 3
bin/data-migrations/v6/src/migration.js

@@ -2,11 +2,14 @@
 /* eslint-disable no-undef, no-var, vars-on-top, no-restricted-globals, regex/invalid, import/extensions */
 // ignore lint error because this file is js as mongoshell
 
-var processor = require('./processor.js');
-
 var pagesCollection = db.getCollection('pages');
 var revisionsCollection = db.getCollection('revisions');
 
+var getProcessorArray = require('./processor.js');
+
+var migrationType = process.env.MIGRATION_TYPE;
+var processors = getProcessorArray(migrationType);
+
 var operations = [];
 
 var batchSize = process.env.BATCH_SIZE ?? 100; // default 100 revisions in 1 bulkwrite
@@ -23,10 +26,14 @@ function replaceLatestRevisions(body, processors) {
   return replacedBody;
 }
 
+if (processors.length === 0) {
+  throw Error('No valid processors found. Please enter a valid environment variable');
+}
+
 pagesCollection.find({}).forEach((doc) => {
   if (doc.revision) {
     var revision = revisionsCollection.findOne({ _id: doc.revision });
-    var replacedBody = replaceLatestRevisions(revision.body, [...processor]);
+    var replacedBody = replaceLatestRevisions(revision.body, [...processors]);
     var operation = {
       updateOne: {
         filter: { _id: revision._id },

+ 26 - 27
bin/data-migrations/v6/src/processor.js

@@ -35,32 +35,31 @@ function bracketlinkProcessor(body) {
 // define processors
 // ===========================================
 
-var migrationType = process.env.MIGRATION_TYPE;
-
-var oldFormatProcessors;
-switch (migrationType) {
-  case 'v6-drawio':
-    oldFormatProcessors = [drawioProcessor];
-    break;
-  case 'v6-plantuml':
-    oldFormatProcessors = [plantumlProcessor];
-    break;
-  case 'v6-tsv':
-    oldFormatProcessors = [tsvProcessor];
-    break;
-  case 'v6-csv':
-    oldFormatProcessors = [csvProcessor];
-    break;
-  case 'v6-bracketlink':
-    oldFormatProcessors = [bracketlinkProcessor];
-    break;
-  case 'v6':
-    oldFormatProcessors = [drawioProcessor, plantumlProcessor, tsvProcessor, csvProcessor, bracketlinkProcessor];
-    break;
-  case undefined:
-    throw Error('env var MIGRATION_TYPE is required: document link');
-  default:
-    throw Error('invalid MIGRATION_TYPE: document link');
+function getProcessorArray(migrationType) {
+  var oldFormatProcessors;
+  switch (migrationType) {
+    case 'v6-drawio':
+      oldFormatProcessors = [drawioProcessor];
+      break;
+    case 'v6-plantuml':
+      oldFormatProcessors = [plantumlProcessor];
+      break;
+    case 'v6-tsv':
+      oldFormatProcessors = [tsvProcessor];
+      break;
+    case 'v6-csv':
+      oldFormatProcessors = [csvProcessor];
+      break;
+    case 'v6-bracketlink':
+      oldFormatProcessors = [bracketlinkProcessor];
+      break;
+    case 'v6':
+      oldFormatProcessors = [drawioProcessor, plantumlProcessor, tsvProcessor, csvProcessor, bracketlinkProcessor];
+      break;
+    default:
+      oldFormatProcessors = [];
+  }
+  return oldFormatProcessors;
 }
 
-module.exports = oldFormatProcessors;
+module.exports = getProcessorArray;