From a4fa86deed2c760b16f6f78a90873f55408f886c Mon Sep 17 00:00:00 2001 From: Jakob Ackermann Date: Thu, 30 Jun 2022 10:27:32 +0100 Subject: [PATCH] Merge pull request #8542 from overleaf/jlm-drop-index-if-exists Do not fail to drop non-existent indexes GitOrigin-RevId: 226eba50a395f62751028e22030a53a0487f5343 --- services/web/migrations/lib/helpers.js | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/services/web/migrations/lib/helpers.js b/services/web/migrations/lib/helpers.js index 8be0393ec2..7a79ab9a8a 100644 --- a/services/web/migrations/lib/helpers.js +++ b/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) {