From 7ce1e0bd4857a94bda3a7ebf0bc04385bbffe284 Mon Sep 17 00:00:00 2001 From: David <33458145+davidmcpowell@users.noreply.github.com> Date: Tue, 23 Jun 2026 10:40:46 +0100 Subject: [PATCH] Merge pull request #34797 from overleaf/dp-cleanup-reference-settings-migrated-field [web] Add migration to unset reference settings migrated flag GitOrigin-RevId: 570621d7a78f225a4bbf98f7046b096ffa735048 --- ...unset_reference_settings_migrated_flag.mjs | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 tools/migrations/20260618090000_unset_reference_settings_migrated_flag.mjs diff --git a/tools/migrations/20260618090000_unset_reference_settings_migrated_flag.mjs b/tools/migrations/20260618090000_unset_reference_settings_migrated_flag.mjs new file mode 100644 index 0000000000..e812a2c4a0 --- /dev/null +++ b/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, +}