diff --git a/services/web/migrations/20250115110745_oauth_user_id_index_no_partial.mjs b/services/web/migrations/20250115110745_oauth_user_id_index_no_partial.mjs new file mode 100644 index 0000000000..cc0bec9b86 --- /dev/null +++ b/services/web/migrations/20250115110745_oauth_user_id_index_no_partial.mjs @@ -0,0 +1,38 @@ +/* eslint-disable no-unused-vars */ + +import Helpers from './lib/helpers.mjs' + +const tags = ['server-ce', 'server-pro', 'saas'] + +const oldIndex = { + key: { user_id: 1 }, + name: 'pat_user_id_1', + partialFilterExpression: { type: 'pat' }, +} + +const newIndex = { + key: { user_id: 1 }, + name: 'user_id_1', +} + +const migrate = async client => { + const { db } = client + await Helpers.addIndexesToCollection(db.oauthAccessTokens, [newIndex]) + await Helpers.dropIndexesFromCollection(db.oauthAccessTokens, [oldIndex]) +} + +const rollback = async client => { + const { db } = client + try { + await Helpers.addIndexesToCollection(db.oauthAccessTokens, [oldIndex]) + await Helpers.dropIndexesFromCollection(db.oauthAccessTokens, [newIndex]) + } catch (err) { + console.error('Something went wrong rolling back the migrations', err) + } +} + +export default { + tags, + migrate, + rollback, +}