From 9e090992f17bce87fecdc3267a3c0b6d03b5c2bc Mon Sep 17 00:00:00 2001 From: Eric Mc Sween <5454374+emcsween@users.noreply.github.com> Date: Tue, 21 Nov 2023 07:40:07 -0500 Subject: [PATCH] Merge pull request #15711 from overleaf/em-migrate-docops-versions Migrate doc versions from docOps to docs GitOrigin-RevId: f1d7f68e0e5e869c431c4479766b81c9df355be5 --- ...7_move_doc_versions_from_docops_to_docs.js | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 services/web/migrations/20231108221857_move_doc_versions_from_docops_to_docs.js diff --git a/services/web/migrations/20231108221857_move_doc_versions_from_docops_to_docs.js b/services/web/migrations/20231108221857_move_doc_versions_from_docops_to_docs.js new file mode 100644 index 0000000000..ab8407f692 --- /dev/null +++ b/services/web/migrations/20231108221857_move_doc_versions_from_docops_to_docs.js @@ -0,0 +1,33 @@ +const { ReadPreference } = require('mongodb') + +exports.tags = ['server-ce', 'server-pro', 'saas'] + +exports.migrate = async ({ db }) => { + const records = db.docOps.find( + {}, + { readPreference: ReadPreference.secondaryPreferred } + ) + + let docsProcessed = 0 + for await (const record of records) { + const docId = record.doc_id + const version = record.version + await db.docs.updateOne( + { + _id: docId, + version: { $exists: false }, + }, + { $set: { version } } + ) + docsProcessed += 1 + if (docsProcessed % 100000 === 0) { + console.log(`${docsProcessed} docs processed`) + } + } +} + +exports.rollback = async ({ db }) => { + // Nothing to do on rollback. We don't want to remove versions from the docs + // collection because they might be more current than the ones in the docOps + // collection. +}