| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- const { db } = require('../app/src/infrastructure/mongodb')
- const { batchedUpdate } = require('./helpers/batchedUpdate')
- const DRY_RUN = !process.argv.includes('--dry-run=false')
- const LOG_EVERY_IN_S = parseInt(process.env.LOG_EVERY_IN_S, 10) || 5
- async function main(DRY_RUN) {
- let processed = 0
- let deleted = 0
- let lastLog = 0
- function logProgress() {
- console.log(`rev missing ${processed} | deleted=true ${deleted}`)
- }
- await batchedUpdate(
- 'docs',
- { rev: { $exists: false } },
- async docs => {
- if (!DRY_RUN) {
- await db.docs.updateMany(
- {
- _id: { $in: docs.map(doc => doc._id) },
- rev: { $exists: false },
- },
- { $set: { rev: 1 } }
- )
- }
- processed += docs.length
- deleted += docs.filter(doc => doc.deleted).length
- if (Date.now() - lastLog >= LOG_EVERY_IN_S * 1000) {
- logProgress()
- lastLog = Date.now()
- }
- },
- {
- _id: 1,
- deleted: true,
- }
- )
- logProgress()
- }
- module.exports = main
- if (require.main === module) {
- main(DRY_RUN)
- .then(() => {
- console.log('Done.')
- process.exit(0)
- })
- .catch(error => {
- console.error({ error })
- process.exit(1)
- })
- }
|