From a2523408aaa2b086dca379ff4ae0ad30df7e01b2 Mon Sep 17 00:00:00 2001 From: Diego Sampaio Date: Fri, 1 Jul 2022 18:39:06 -0300 Subject: [PATCH] Chore: Handle errors on index creation (#26094) --- apps/meteor/server/models/raw/BaseRaw.ts | 2 +- apps/meteor/server/startup/migrations/v203.ts | 9 +++++++-- apps/meteor/server/startup/migrations/v218.ts | 10 +++++++--- apps/meteor/server/startup/migrations/v263.ts | 9 +++++++-- apps/meteor/server/startup/migrations/v264.ts | 9 +++++++-- apps/meteor/server/startup/migrations/v273.ts | 7 ++++++- yarn.lock | 2 +- 7 files changed, 36 insertions(+), 12 deletions(-) diff --git a/apps/meteor/server/models/raw/BaseRaw.ts b/apps/meteor/server/models/raw/BaseRaw.ts index c01b6d156be9..9b36132a1e81 100644 --- a/apps/meteor/server/models/raw/BaseRaw.ts +++ b/apps/meteor/server/models/raw/BaseRaw.ts @@ -54,7 +54,7 @@ export abstract class BaseRaw = undefined> impleme const indexes = this.modelIndexes(); if (indexes?.length) { this.col.createIndexes(indexes).catch((e) => { - console.warn(`Error creating indexes for ${this.name}`, e); + console.warn(`Some indexes for collection '${this.name}' could not be created:\n\t${e.message}`); }); } diff --git a/apps/meteor/server/startup/migrations/v203.ts b/apps/meteor/server/startup/migrations/v203.ts index 669841c4b964..ba6901ab7a25 100644 --- a/apps/meteor/server/startup/migrations/v203.ts +++ b/apps/meteor/server/startup/migrations/v203.ts @@ -5,7 +5,12 @@ import { addMigration } from '../../lib/migrations'; addMigration({ version: 203, async up() { - await Avatars.col.dropIndex('name_1'); - await Avatars.col.createIndex({ name: 1 }, { sparse: true }); + try { + await Avatars.col.dropIndex('name_1'); + await Avatars.col.createIndex({ name: 1 }, { sparse: true }); + } catch (error: unknown) { + console.warn('Error recreating index for rocketchat_avatars, continuing...'); + console.warn(error); + } }, }); diff --git a/apps/meteor/server/startup/migrations/v218.ts b/apps/meteor/server/startup/migrations/v218.ts index ed7a954b2828..e0b9aa64f3a4 100644 --- a/apps/meteor/server/startup/migrations/v218.ts +++ b/apps/meteor/server/startup/migrations/v218.ts @@ -4,8 +4,12 @@ import { addMigration } from '../../lib/migrations'; addMigration({ version: 218, - up() { - // TODO test if dropIndex do not raise exceptions. - Statistics.col.dropIndex('createdAt_1'); + async up() { + try { + await Statistics.col.dropIndex('createdAt_1'); + } catch (error: unknown) { + console.warn('Error droping index for rocketchat_statistics, continuing...'); + console.warn(error); + } }, }); diff --git a/apps/meteor/server/startup/migrations/v263.ts b/apps/meteor/server/startup/migrations/v263.ts index e11820fe929f..74f0c72f2b2f 100644 --- a/apps/meteor/server/startup/migrations/v263.ts +++ b/apps/meteor/server/startup/migrations/v263.ts @@ -8,7 +8,12 @@ addMigration({ const { mongo } = MongoInternals.defaultRemoteCollectionDriver(); const integrationHistory = mongo.db.collection('rocketchat_integration_history'); - await integrationHistory.dropIndex('_updatedAt_1'); - await integrationHistory.createIndex({ _updatedAt: 1 }, { expireAfterSeconds: 30 * 24 * 60 * 60 }); + try { + await integrationHistory.dropIndex('_updatedAt_1'); + await integrationHistory.createIndex({ _updatedAt: 1 }, { expireAfterSeconds: 30 * 24 * 60 * 60 }); + } catch (error: unknown) { + console.warn('Error recreating index for rocketchat_integration_history, continuing...'); + console.warn(error); + } }, }); diff --git a/apps/meteor/server/startup/migrations/v264.ts b/apps/meteor/server/startup/migrations/v264.ts index b0f8e6cc0a38..f38b8de0f717 100644 --- a/apps/meteor/server/startup/migrations/v264.ts +++ b/apps/meteor/server/startup/migrations/v264.ts @@ -35,7 +35,12 @@ addMigration({ ), ); - await npsVote.dropIndex('npsId_1_identifier_1'); - await npsVote.createIndex({ npsId: 1, identifier: 1 }, { unique: true }); + try { + await npsVote.dropIndex('npsId_1_identifier_1'); + await npsVote.createIndex({ npsId: 1, identifier: 1 }, { unique: true }); + } catch (error: unknown) { + console.warn('Error recreating index for rocketchat_nps_vote, continuing...'); + console.warn(error); + } }, }); diff --git a/apps/meteor/server/startup/migrations/v273.ts b/apps/meteor/server/startup/migrations/v273.ts index d576c3900836..edae499640fe 100644 --- a/apps/meteor/server/startup/migrations/v273.ts +++ b/apps/meteor/server/startup/migrations/v273.ts @@ -4,6 +4,11 @@ import { addMigration } from '../../lib/migrations'; addMigration({ version: 273, async up() { - return appTokensCollection.rawCollection().dropIndex('userId_1'); + try { + return appTokensCollection.rawCollection().dropIndex('userId_1'); + } catch (error: unknown) { + console.warn('Error dropping index for _raix_push_app_tokens, continuing...'); + console.warn(error); + } }, }); diff --git a/yarn.lock b/yarn.lock index 04175e85b239..1758d4cc2d01 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9348,7 +9348,7 @@ __metadata: human-interval: ~1.0.0 moment-timezone: ~0.5.27 mongodb: ~3.5.0 - checksum: acb4ebb7e7356f6e53e810d821eb6aa3d88bbfb9e85183e707517bee6d1eea1f189f38bdf0dd2b91360492ab7643134d510c320d2523d86596498ab98e59735b + checksum: f5f68008298f9482631f1f494e392cd6b8ba7971a3b0ece81ae2abe60f53d67973ff4476156fa5c9c41b8b58c4ccd284e95c545e0523996dfd05f9a80b843e07 languageName: node linkType: hard