Przeglądaj źródła

Merge pull request #34797 from overleaf/dp-cleanup-reference-settings-migrated-field

[web] Add migration to unset reference settings migrated flag

GitOrigin-RevId: 570621d7a78f225a4bbf98f7046b096ffa735048
David 1 miesiąc temu
rodzic
commit
7ce1e0bd48

+ 36 - 0
tools/migrations/20260618090000_unset_reference_settings_migrated_flag.mjs

@@ -0,0 +1,36 @@
+import { db } from './lib/mongodb.mjs'
+import { batchedUpdate } from '@overleaf/mongo-utils/batchedUpdate.js'
+
+// Cleanup following the removal of the reference manager settings migration
+// code (see #34507). The `migrated` flag was written alongside the
+// zotero/mendeley/papers settings during the local-storage -> mongo migration
+// and is no longer read or written, so we $unset it from existing user
+// documents.
+
+// Non-blocking: the field is already unused in code, so this cleanup does not
+// need to be applied before the deploy that ships it.
+const tags = ['saas', 'server-ce', 'server-pro', 'nonblocking']
+
+const MIGRATED_FIELDS = [
+  'ace.zotero.migrated',
+  'ace.mendeley.migrated',
+  'ace.papers.migrated',
+]
+
+const migrate = async () => {
+  await batchedUpdate(
+    db.users,
+    { $or: MIGRATED_FIELDS.map(field => ({ [field]: { $exists: true } })) },
+    { $unset: Object.fromEntries(MIGRATED_FIELDS.map(field => [field, ''])) }
+  )
+}
+
+// No rollback: the original per-user value of `migrated` is not recoverable and
+// the field is no longer used anywhere.
+const rollback = async () => {}
+
+export default {
+  tags,
+  migrate,
+  rollback,
+}