From 07238520bbeea84b7c47b1541e5adc5b3e3f0ff4 Mon Sep 17 00:00:00 2001 From: Eric Mc Sween <5454374+emcsween@users.noreply.github.com> Date: Wed, 31 Jan 2024 10:44:02 -0500 Subject: [PATCH] Merge pull request #15748 from overleaf/em-drop-docops-collection Drop the docOps collection GitOrigin-RevId: 8ffa0570ae58b6a00412d8953d3ea0fbb1869b69 --- .../web/app/src/infrastructure/mongodb.js | 1 - .../20190912145006_create_docOps_indexes.js | 20 ++++++------------- .../20231110192205_drop_docops_collection.js | 11 ++++++++++ ...0_move_doc_versions_from_docops_to_docs.js | 6 ++++-- services/web/migrations/lib/adapter.js | 4 +++- 5 files changed, 24 insertions(+), 18 deletions(-) create mode 100644 services/web/migrations/20231110192205_drop_docops_collection.js diff --git a/services/web/app/src/infrastructure/mongodb.js b/services/web/app/src/infrastructure/mongodb.js index a4e95fe8ec..7f5a959ddb 100644 --- a/services/web/app/src/infrastructure/mongodb.js +++ b/services/web/app/src/infrastructure/mongodb.js @@ -38,7 +38,6 @@ async function setupDb() { db.dropboxProjects = internalDb.collection('dropboxProjects') db.docHistory = internalDb.collection('docHistory') db.docHistoryIndex = internalDb.collection('docHistoryIndex') - db.docOps = internalDb.collection('docOps') db.docSnapshots = internalDb.collection('docSnapshots') db.docs = internalDb.collection('docs') db.feedbacks = internalDb.collection('feedbacks') diff --git a/services/web/migrations/20190912145006_create_docOps_indexes.js b/services/web/migrations/20190912145006_create_docOps_indexes.js index 1ee220427d..31ab9c44c6 100644 --- a/services/web/migrations/20190912145006_create_docOps_indexes.js +++ b/services/web/migrations/20190912145006_create_docOps_indexes.js @@ -1,5 +1,3 @@ -/* eslint-disable no-unused-vars */ - const Helpers = require('./lib/helpers') exports.tags = ['server-ce', 'server-pro', 'saas'] @@ -14,18 +12,12 @@ const indexes = [ }, ] -exports.migrate = async client => { - const { db } = client - - await Helpers.addIndexesToCollection(db.docOps, indexes) +exports.migrate = async ({ nativeDb }) => { + const docOps = nativeDb.collection('docOps') + await Helpers.addIndexesToCollection(docOps, indexes) } -exports.rollback = async client => { - const { db } = client - - try { - await Helpers.dropIndexesFromCollection(db.docOps, indexes) - } catch (err) { - console.error('Something went wrong rolling back the migrations', err) - } +exports.rollback = async ({ nativeDb }) => { + const docOps = nativeDb.collection('docOps') + await Helpers.dropIndexesFromCollection(docOps, indexes) } diff --git a/services/web/migrations/20231110192205_drop_docops_collection.js b/services/web/migrations/20231110192205_drop_docops_collection.js new file mode 100644 index 0000000000..8d0ce24136 --- /dev/null +++ b/services/web/migrations/20231110192205_drop_docops_collection.js @@ -0,0 +1,11 @@ +const { dropCollection } = require('./lib/helpers') + +exports.tags = ['server-ce', 'server-pro', 'saas'] + +exports.migrate = async () => { + await dropCollection('docOps') +} + +exports.rollback = async client => { + // there's no rollback: we can't recover the data +} 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 05bea4ff11..603494b749 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 @@ -5,12 +5,14 @@ const MIN_ID = process.env.MIN_ID exports.tags = ['server-ce', 'server-pro', 'saas'] -exports.migrate = async ({ db }) => { +exports.migrate = async ({ db, nativeDb }) => { + const docOps = nativeDb.collection('docOps') + const filter = {} if (MIN_ID) { filter._id = { $gte: new ObjectId(MIN_ID) } } - const records = db.docOps + const records = docOps .find(filter, { readPreference: ReadPreference.secondaryPreferred }) .sort({ _id: 1 }) diff --git a/services/web/migrations/lib/adapter.js b/services/web/migrations/lib/adapter.js index 403c9f5c49..a3c8a5cbd1 100644 --- a/services/web/migrations/lib/adapter.js +++ b/services/web/migrations/lib/adapter.js @@ -19,8 +19,10 @@ class Adapter { async connect() { const { waitForDb, db } = require('../../app/src/infrastructure/mongodb') + const { getNativeDb } = require('../../app/src/infrastructure/Mongoose') await waitForDb() - return { db } + const nativeDb = await getNativeDb() + return { db, nativeDb } } disconnect() {