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

Merge pull request #8542 from overleaf/jlm-drop-index-if-exists

Do not fail to drop non-existent indexes

GitOrigin-RevId: 226eba50a395f62751028e22030a53a0487f5343
Jakob Ackermann 4 лет назад
Родитель
Сommit
a4fa86deed
1 измененных файлов с 13 добавлено и 1 удалено
  1. 13 1
      services/web/migrations/lib/helpers.js

+ 13 - 1
services/web/migrations/lib/helpers.js

@@ -15,7 +15,19 @@ async function addIndexesToCollection(collection, indexes) {
 }
 
 async function dropIndexesFromCollection(collection, indexes) {
-  return Promise.all(indexes.map(index => collection.dropIndex(index.name)))
+  return Promise.all(
+    indexes.map(async index => {
+      try {
+        await collection.dropIndex(index.name)
+      } catch (err) {
+        if (err.code === 27 /* IndexNotFound */) {
+          console.log(`Index ${index.name} not found; drop was a no-op.`)
+        } else {
+          throw err
+        }
+      }
+    })
+  )
 }
 
 async function dropCollection(collectionName) {