| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- const { waitForDb, db } = require('../../app/src/infrastructure/mongodb')
- async function main() {
- await checkAllProjectsAreMigrated()
- await setAllowDowngradeToFalse()
- await deleteHistoryCollections()
- console.log('Legacy history data cleaned up successfully')
- process.exit(0)
- }
- async function checkAllProjectsAreMigrated() {
- console.log('checking all projects are migrated to Full Project History')
- const count = await db.projects.countDocuments({
- 'overleaf.history.display': { $ne: true },
- })
- if (count === 0) {
- console.log('All projects are migrated to Full Project History')
- } else {
- console.error(
- `There are ${count} projects that are not migrated to Full Project History` +
- ` please complete the migration before running this script again.`
- )
- process.exit(1)
- }
- }
- async function setAllowDowngradeToFalse() {
- console.log('unsetting `allowDowngrade` flag in all projects')
- await db.projects.updateMany(
- {
- 'overleaf.history.id': { $exists: true },
- 'overleaf.history.allowDowngrade': true,
- },
- { $unset: { 'overleaf.history.allowDowngrade': 1 } }
- )
- console.log('unsetting `allowDowngrade` flag in all projects - Done')
- }
- async function deleteHistoryCollections() {
- console.log('removing `docHistory` data')
- await db.docHistory.deleteMany({})
- console.log('removing `docHistory` data - Done')
- console.log('removing `docHistoryIndex` data')
- await db.docHistoryIndex.deleteMany({})
- console.log('removing `docHistoryIndex` data - Done')
- console.log('removing `projectHistoryMetaData` data')
- await db.projectHistoryMetaData.deleteMany({})
- console.log('removing `projectHistoryMetaData` data - Done')
- }
- waitForDb()
- .then(main)
- .catch(err => {
- console.error(err)
- process.exit(1)
- })
|