| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- import { db } from '../app/src/infrastructure/mongodb.js'
- import BatchedUpdateModule from './helpers/batchedUpdate.mjs'
- import { fileURLToPath } from 'node:url'
- const { batchedUpdate } = BatchedUpdateModule
- 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()
- }
- export default main
- if (fileURLToPath(import.meta.url) === process.argv[1]) {
- try {
- await main(DRY_RUN)
- console.log('Done.')
- process.exit(0)
- } catch (error) {
- console.error({ error })
- process.exit(1)
- }
- }
|