Shun Miyazawa 2 лет назад
Родитель
Сommit
0c313b6918

+ 9 - 12
bin/data-migrations/src/migration.js

@@ -5,19 +5,19 @@
 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 processorVersion = process.env.PROCESSOR_VERSION;
 
 var batchSize = process.env.BATCH_SIZE ?? 100; // default 100 revisions in 1 bulkwrite
 var batchSizeInterval = process.env.BATCH_INTERVAL ?? 3000; // default 3 sec
 
-// ===========================================
-// replace method with processors
-// ===========================================
+var getProcessorArray = require(`./processors/${processorVersion}`);
+var processors = getProcessorArray(migrationType);
+
+if (processors.length === 0) {
+  throw Error('No valid processors found. Please enter a valid environment variable');
+}
+
 function replaceLatestRevisions(body, processors) {
   var replacedBody = body;
   processors.forEach((processor) => {
@@ -26,10 +26,7 @@ function replaceLatestRevisions(body, processors) {
   return replacedBody;
 }
 
-if (processors.length === 0) {
-  throw Error('No valid processors found. Please enter a valid environment variable');
-}
-
+var operations = [];
 pagesCollection.find({}).forEach((doc) => {
   if (doc.revision) {
     var revision = revisionsCollection.findOne({ _id: doc.revision });

+ 7 - 24
bin/data-migrations/src/processor.js → bin/data-migrations/src/processors/60x.js

@@ -5,6 +5,7 @@
 // ===========================================
 // processors for old format
 // ===========================================
+
 function drawioProcessor(body) {
   var oldDrawioRegExp = /:::\s?drawio\n(.+?)\n:::/g; // drawio old format
   return body.replace(oldDrawioRegExp, '``` drawio\n$1\n```');
@@ -31,18 +32,6 @@ function bracketlinkProcessor(body) {
   return body.replace(oldBracketLinkRegExp, '[[$1]]');
 }
 
-function mdcontPrefixProcessor(body) {
-  var oldMdcontPrefixRegExp = /#mdcont-/g;
-  return body.replace(oldMdcontPrefixRegExp, '#');
-}
-
-// processor for MIGRATION_TYPE=custom
-function customProcessor(body) {
-  // ADD YOUR PROCESS HERE!
-  // https://github.com/weseek/growi/discussions/7180
-  return body;
-}
-
 // ===========================================
 // define processors
 // ===========================================
@@ -50,30 +39,24 @@ function customProcessor(body) {
 function getProcessorArray(migrationType) {
   var oldFormatProcessors;
   switch (migrationType) {
-    case 'v6-drawio':
+    case 'drawio':
       oldFormatProcessors = [drawioProcessor];
       break;
-    case 'v6-plantuml':
+    case 'plantuml':
       oldFormatProcessors = [plantumlProcessor];
       break;
-    case 'v6-tsv':
+    case 'tsv':
       oldFormatProcessors = [tsvProcessor];
       break;
-    case 'v6-csv':
+    case 'csv':
       oldFormatProcessors = [csvProcessor];
       break;
-    case 'v6-bracketlink':
+    case 'bracketlink':
       oldFormatProcessors = [bracketlinkProcessor];
       break;
-    case 'mdcont':
-      oldFormatProcessors = [mdcontPrefixProcessor];
-      break;
-    case 'v6':
+    case 'all':
       oldFormatProcessors = [drawioProcessor, plantumlProcessor, tsvProcessor, csvProcessor, bracketlinkProcessor];
       break;
-    case 'custom':
-      oldFormatProcessors = [customProcessor];
-      break;
     default:
       oldFormatProcessors = [];
   }

+ 33 - 0
bin/data-migrations/src/processors/61x.js

@@ -0,0 +1,33 @@
+
+/* eslint-disable no-undef, no-var, vars-on-top, no-restricted-globals, regex/invalid */
+// ignore lint error because this file is js as mongoshell
+
+// ===========================================
+// processors for old format
+// ===========================================
+
+function mdcontPrefixProcessor(body) {
+  var oldMdcontPrefixRegExp = /#mdcont-/g;
+  return body.replace(oldMdcontPrefixRegExp, '#');
+}
+
+// ===========================================
+// define processors
+// ===========================================
+
+function getProcessorArray(migrationType) {
+  var oldFormatProcessors;
+  switch (migrationType) {
+    case 'mdcont':
+      oldFormatProcessors = [mdcontPrefixProcessor];
+      break;
+    case 'all':
+      oldFormatProcessors = [mdcontPrefixProcessor];
+      break;
+    default:
+      oldFormatProcessors = [];
+  }
+  return oldFormatProcessors;
+}
+
+module.exports = getProcessorArray;