Переглянути джерело

Updated mongo index for ProjectDeleter (#23138)

GitOrigin-RevId: aa26f29b8917b0d6ff836cc03f82b74066a7dcd4
Domagoj Kriskovic 1 рік тому
батько
коміт
cd48caeaa1

+ 1 - 1
services/web/app/src/Features/Project/ProjectDeleter.js

@@ -90,7 +90,7 @@ async function expireDeletedProjectsAfterDuration() {
       'deleterData.deletedAt': {
         $lt: new Date(moment().subtract(EXPIRE_PROJECTS_AFTER_DAYS, 'days')),
       },
-      project: { $ne: null },
+      project: { $type: 'object' },
     },
     { 'deleterData.deletedProjectId': 1 }
   )

+ 44 - 0
services/web/migrations/20250126195914_update_deleterData.deletedAt_index.mjs

@@ -0,0 +1,44 @@
+/* eslint-disable no-unused-vars */
+
+import Helpers from './lib/helpers.mjs'
+
+const tags = ['server-ce', 'server-pro', 'saas']
+
+const oldIndex = {
+  key: {
+    'deleterData.deletedAt': 1,
+  },
+  name: 'deleterData.deletedAt_1',
+}
+
+const newIndex = {
+  key: {
+    'deleterData.deletedAt': 1,
+  },
+  name: 'deleterData.deletedAt_1',
+  partialFilterExpression: { project: { $type: 'object' } },
+}
+
+const migrate = async client => {
+  const { db } = client
+
+  await Helpers.dropIndexesFromCollection(db.deletedProjects, [oldIndex])
+  await Helpers.addIndexesToCollection(db.deletedProjects, [newIndex])
+}
+
+const rollback = async client => {
+  const { db } = client
+
+  try {
+    await Helpers.dropIndexesFromCollection(db.deletedProjects, [newIndex])
+    await Helpers.addIndexesToCollection(db.deletedProjects, [oldIndex])
+  } catch (err) {
+    console.error('Something went wrong rolling back the migrations', err)
+  }
+}
+
+export default {
+  tags,
+  migrate,
+  rollback,
+}

+ 1 - 1
services/web/test/unit/src/Project/ProjectDeleterTests.js

@@ -397,7 +397,7 @@ describe('ProjectDeleter', function () {
             $lt: new Date(moment().subtract(90, 'days')),
           },
           project: {
-            $ne: null,
+            $type: 'object',
           },
         })
         .chain('exec')