From c2ddc43dd4d00813b2da3ba4bf91c7252240b1a8 Mon Sep 17 00:00:00 2001 From: Eric Mc Sween <5454374+emcsween@users.noreply.github.com> Date: Wed, 10 Jan 2024 07:32:04 -0500 Subject: [PATCH] Merge pull request #16446 from overleaf/em-docops-migration-min-id Support min id in docOps migration GitOrigin-RevId: d08887aca1e8b744515d42e0b6f2286d45c4d93e --- ...700_move_doc_versions_from_docops_to_docs.js | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/services/web/migrations/20231219081700_move_doc_versions_from_docops_to_docs.js b/services/web/migrations/20231219081700_move_doc_versions_from_docops_to_docs.js index e4a37093db..05bea4ff11 100644 --- a/services/web/migrations/20231219081700_move_doc_versions_from_docops_to_docs.js +++ b/services/web/migrations/20231219081700_move_doc_versions_from_docops_to_docs.js @@ -1,14 +1,18 @@ -const { ReadPreference } = require('mongodb') +const { ObjectId, ReadPreference } = require('mongodb') const BATCH_SIZE = parseInt(process.env.BATCH_SIZE || '1000', 10) +const MIN_ID = process.env.MIN_ID exports.tags = ['server-ce', 'server-pro', 'saas'] exports.migrate = async ({ db }) => { - const records = db.docOps.find( - {}, - { readPreference: ReadPreference.secondaryPreferred } - ) + const filter = {} + if (MIN_ID) { + filter._id = { $gte: new ObjectId(MIN_ID) } + } + const records = db.docOps + .find(filter, { readPreference: ReadPreference.secondaryPreferred }) + .sort({ _id: 1 }) let docsProcessed = 0 let batch = [] @@ -30,12 +34,13 @@ exports.migrate = async ({ db }) => { } docsProcessed += 1 if (docsProcessed % 100000 === 0) { - console.log(`${docsProcessed} docs processed`) + console.log(`${docsProcessed} docs processed - last id: ${docId}`) } } if (batch.length > 0) { await db.docs.bulkWrite(batch, { ordered: false }) } + console.log(`DONE - ${docsProcessed} docs processed`) } exports.rollback = async ({ db }) => {