|
|
@@ -34,24 +34,34 @@ function replaceLatestRevisions(body, migrationModules) {
|
|
|
var operations = [];
|
|
|
pagesCollection.find({}).forEach((doc) => {
|
|
|
if (doc.revision) {
|
|
|
- var revision = revisionsCollection.findOne({ _id: doc.revision });
|
|
|
- var replacedBody = replaceLatestRevisions(revision.body, [...migrationModules]);
|
|
|
- var operation = {
|
|
|
- updateOne: {
|
|
|
- filter: { _id: revision._id },
|
|
|
- update: {
|
|
|
- $set: { body: replacedBody },
|
|
|
+ try {
|
|
|
+ var revision = revisionsCollection.findOne({ _id: doc.revision });
|
|
|
+
|
|
|
+ if (revision == null || revision.body == null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ var replacedBody = replaceLatestRevisions(revision.body, [...migrationModules]);
|
|
|
+ var operation = {
|
|
|
+ updateOne: {
|
|
|
+ filter: { _id: revision._id },
|
|
|
+ update: {
|
|
|
+ $set: { body: replacedBody },
|
|
|
+ },
|
|
|
},
|
|
|
- },
|
|
|
- };
|
|
|
- operations.push(operation);
|
|
|
-
|
|
|
- // bulkWrite per 100 revisions
|
|
|
- if (operations.length > (batchSize - 1)) {
|
|
|
- revisionsCollection.bulkWrite(operations);
|
|
|
- // sleep time can be set from env var
|
|
|
- sleep(batchSizeInterval);
|
|
|
- operations = [];
|
|
|
+ };
|
|
|
+ operations.push(operation);
|
|
|
+
|
|
|
+ // bulkWrite per 100 revisions
|
|
|
+ if (operations.length > (batchSize - 1)) {
|
|
|
+ revisionsCollection.bulkWrite(operations);
|
|
|
+ // sleep time can be set from env var
|
|
|
+ sleep(batchSizeInterval);
|
|
|
+ operations = [];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ catch (err) {
|
|
|
+ print(`Error in updating revision ${doc.revision}: ${err}`);
|
|
|
}
|
|
|
}
|
|
|
});
|