Просмотр исходного кода

Merge pull request #29697 from overleaf/ac-td-user-audit-log-index

Add migration to improve index on userAuditLogEntries

GitOrigin-RevId: c4a606e1ab7299008baa3b05ac1fb8ca18036fae
Tim Down 7 месяцев назад
Родитель
Сommit
2b39beab80

+ 2 - 0
services/web/test/acceptance/src/helpers/User.mjs

@@ -266,6 +266,8 @@ class User {
 
       db.userAuditLogEntries
         .find({ userId: new ObjectId(this._id) })
+        // Explicitly sort in ascending chronological order
+        .sort({ timestamp: 1 })
         .toArray((error, auditLog) => {
           if (error) {
             return callback(error)

+ 36 - 0
tools/migrations/20251117093546_add_timestamp_to_userAuditLogEntries.mjs

@@ -0,0 +1,36 @@
+import Helpers from './lib/helpers.mjs'
+
+const oldIndex = {
+  key: {
+    userId: 1,
+  },
+  name: 'user_id_1',
+}
+
+const newIndex = {
+  key: {
+    userId: 1,
+    timestamp: -1,
+  },
+  name: 'userId_1_timestamp_-1',
+}
+
+const tags = ['server-ce', 'server-pro', 'saas']
+
+const migrate = async client => {
+  const { db } = client
+  await Helpers.addIndexesToCollection(db.userAuditLogEntries, [newIndex])
+  await Helpers.dropIndexesFromCollection(db.userAuditLogEntries, [oldIndex])
+}
+
+const rollback = async client => {
+  const { db } = client
+  await Helpers.addIndexesToCollection(db.userAuditLogEntries, [oldIndex])
+  await Helpers.dropIndexesFromCollection(db.userAuditLogEntries, [newIndex])
+}
+
+export default {
+  tags,
+  migrate,
+  rollback,
+}