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, +}