Update inactive project deactivation index (#24444)

* Update inactive project deactivation index

* Delete index first, otherwise Mongo complains that the index already exists with a different name

GitOrigin-RevId: b28a60c0774a77363c4e052ddb64bf68665cccf5
This commit is contained in:
Tim Down
2025-03-26 10:51:32 +00:00
committed by Copybot
parent cd267d7735
commit 2f9fc6e82e
2 changed files with 43 additions and 3 deletions

View File

@@ -5,7 +5,6 @@ const DocumentUpdaterHandler = require('../DocumentUpdater/DocumentUpdaterHandle
const ProjectGetter = require('../Project/ProjectGetter')
const ProjectUpdateHandler = require('../Project/ProjectUpdateHandler')
const { Project } = require('../../models/Project')
const { ObjectId } = require('mongodb-legacy')
const Modules = require('../../infrastructure/Modules')
const { READ_PREFERENCE_SECONDARY } = require('../../infrastructure/mongodb')
const { callbackifyAll } = require('@overleaf/promise-utils')
@@ -62,8 +61,6 @@ const InactiveProjectManager = {
projects = await Project.find({
lastOpened: { $not: { $gt: oldProjectDate } },
})
.where('_id')
.lt(ObjectId.createFromTime(oldProjectDate / 1000))
.where('active')
.equals(true)
.select('_id')

View File

@@ -0,0 +1,43 @@
/* eslint-disable no-unused-vars */
import Helpers from './lib/helpers.mjs'
const tags = ['server-ce', 'server-pro', 'saas']
const oldIndex = {
key: {
lastOpened: 1,
},
name: 'lastOpened_1',
}
const newIndex = {
key: {
lastOpened: 1,
},
name: 'active_true_lastOpened_1',
partialFilterExpression: { active: true },
}
const migrate = async client => {
const { db } = client
await Helpers.dropIndexesFromCollection(db.projects, [oldIndex])
await Helpers.addIndexesToCollection(db.projects, [newIndex])
}
const rollback = async client => {
const { db } = client
try {
await Helpers.dropIndexesFromCollection(db.projects, [newIndex])
await Helpers.addIndexesToCollection(db.projects, [oldIndex])
} catch (err) {
console.error('Something went wrong rolling back the migrations', err)
}
}
export default {
tags,
migrate,
rollback,
}