clean_sl_history_data.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. const { waitForDb, db } = require('../../app/src/infrastructure/mongodb')
  2. async function main() {
  3. await checkAllProjectsAreMigrated()
  4. await setAllowDowngradeToFalse()
  5. await deleteHistoryCollections()
  6. console.log('Legacy history data cleaned up successfully')
  7. process.exit(0)
  8. }
  9. async function checkAllProjectsAreMigrated() {
  10. console.log('checking all projects are migrated to Full Project History')
  11. const count = await db.projects.countDocuments({
  12. 'overleaf.history.display': { $ne: true },
  13. })
  14. if (count === 0) {
  15. console.log('All projects are migrated to Full Project History')
  16. } else {
  17. console.error(
  18. `There are ${count} projects that are not migrated to Full Project History` +
  19. ` please complete the migration before running this script again.`
  20. )
  21. process.exit(1)
  22. }
  23. }
  24. async function setAllowDowngradeToFalse() {
  25. console.log('unsetting `allowDowngrade` flag in all projects')
  26. await db.projects.updateMany(
  27. {
  28. 'overleaf.history.id': { $exists: true },
  29. 'overleaf.history.allowDowngrade': true,
  30. },
  31. { $unset: { 'overleaf.history.allowDowngrade': 1 } }
  32. )
  33. console.log('unsetting `allowDowngrade` flag in all projects - Done')
  34. }
  35. async function deleteHistoryCollections() {
  36. console.log('removing `docHistory` data')
  37. await db.docHistory.deleteMany({})
  38. console.log('removing `docHistory` data - Done')
  39. console.log('removing `docHistoryIndex` data')
  40. await db.docHistoryIndex.deleteMany({})
  41. console.log('removing `docHistoryIndex` data - Done')
  42. console.log('removing `projectHistoryMetaData` data')
  43. await db.projectHistoryMetaData.deleteMany({})
  44. console.log('removing `projectHistoryMetaData` data - Done')
  45. }
  46. waitForDb()
  47. .then(main)
  48. .catch(err => {
  49. console.error(err)
  50. process.exit(1)
  51. })