From cee51f16ff7a70efd0e06a4134d6603bedfbbb43 Mon Sep 17 00:00:00 2001 From: Maria Florencia Besteiro Gonzalez Date: Mon, 26 Jan 2026 13:52:07 +0100 Subject: [PATCH] Merge pull request #30750 from overleaf/mfb-migration-improve-handling-of-debug-projects Create index to search for debug projects. GitOrigin-RevId: 58c5ff47c6053f03dcd54c88d06d022fcb78d626 --- services/web/app/src/models/Project.mjs | 1 + ...114135706_create-debug-project-indexes.mjs | 31 +++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 tools/migrations/20260114135706_create-debug-project-indexes.mjs diff --git a/services/web/app/src/models/Project.mjs b/services/web/app/src/models/Project.mjs index e7a4b3968f..aa767f2f1b 100644 --- a/services/web/app/src/models/Project.mjs +++ b/services/web/app/src/models/Project.mjs @@ -88,6 +88,7 @@ export const ProjectSchema = new Schema( rangesSupportEnabled: { type: Boolean }, otMigrationStage: { type: Number }, }, + isDebugCopyOf: { type: ObjectId }, }, collabratecUsers: [ { diff --git a/tools/migrations/20260114135706_create-debug-project-indexes.mjs b/tools/migrations/20260114135706_create-debug-project-indexes.mjs new file mode 100644 index 0000000000..d9997ffe01 --- /dev/null +++ b/tools/migrations/20260114135706_create-debug-project-indexes.mjs @@ -0,0 +1,31 @@ +/* eslint-disable no-unused-vars */ + +import Helpers from './lib/helpers.mjs' + +const tags = ['saas'] + +const indexes = [ + { + key: { 'overleaf.isDebugCopyOf': 1, owner_ref: 1, lastUpdated: 1 }, + name: 'owner_ref_1_lastUpdated_1_debugCopies', + partialFilterExpression: { + 'overleaf.isDebugCopyOf': { $type: 'objectId' }, + }, + }, +] + +const migrate = async client => { + const { db } = client + await Helpers.addIndexesToCollection(db.projects, indexes) +} + +const rollback = async client => { + const { db } = client + await Helpers.dropIndexesFromCollection(db.projects, indexes) +} + +export default { + tags, + migrate, + rollback, +}