mirror of
https://github.com/overleaf/overleaf.git
synced 2025-04-07 18:42:42 +00:00
Merge pull request #2798 from overleaf/spd-count-files
Add script to delete deleted-project data from filestore GitOrigin-RevId: 9a2c5861edddf5ed26fc684257369fac4cf95475
This commit is contained in:
parent
f762fd1d16
commit
bbe9f9a620
2 changed files with 52 additions and 2 deletions
|
@ -3,6 +3,8 @@ const ProjectEntityHandler = require('../app/src/Features/Project/ProjectEntityH
|
|||
const ProjectGetter = require('../app/src/Features/Project/ProjectGetter')
|
||||
const Errors = require('../app/src/Features/Errors/Errors')
|
||||
|
||||
/* eslint-disable no-console */
|
||||
|
||||
async function countFiles() {
|
||||
const rl = readline.createInterface({
|
||||
input: process.stdin
|
||||
|
@ -29,10 +31,17 @@ async function countFiles() {
|
|||
if (err instanceof Errors.NotFoundError) {
|
||||
console.error(projectId, 'NOTFOUND')
|
||||
} else {
|
||||
throw err
|
||||
console.log(projectId, 'ERROR', err.name, err.message)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
countFiles().then(() => process.exit(0))
|
||||
countFiles()
|
||||
.then(() => {
|
||||
process.exit(0)
|
||||
})
|
||||
.catch(err => {
|
||||
console.log('Aiee, something went wrong!', err)
|
||||
process.exit(1)
|
||||
})
|
||||
|
|
41
services/web/scripts/delete_projects_from_filestore.js
Normal file
41
services/web/scripts/delete_projects_from_filestore.js
Normal file
|
@ -0,0 +1,41 @@
|
|||
const readline = require('readline')
|
||||
const { Project } = require('../app/src/models/Project')
|
||||
const FileStoreHandler = require('../app/src/Features/FileStore/FileStoreHandler')
|
||||
const { DeletedProject } = require('../app/src/models/DeletedProject')
|
||||
|
||||
/* eslint-disable no-console */
|
||||
|
||||
async function deleteFiles() {
|
||||
const rl = readline.createInterface({
|
||||
input: process.stdin
|
||||
})
|
||||
|
||||
for await (const projectId of rl) {
|
||||
try {
|
||||
const projectCount = await Project.count({ _id: projectId }).exec()
|
||||
if (projectCount > 0) {
|
||||
throw new Error('found an existing project - refusing')
|
||||
}
|
||||
const count = await DeletedProject.count({
|
||||
'deleterData.deletedProjectId': projectId,
|
||||
project: { $ne: null }
|
||||
}).exec()
|
||||
if (count > 0) {
|
||||
throw new Error('found an existing deleted project - refusing')
|
||||
}
|
||||
await FileStoreHandler.promises.deleteProject(projectId)
|
||||
console.error(projectId, 'OK')
|
||||
} catch (err) {
|
||||
console.error(projectId, 'ERROR', err.name, err.message)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
deleteFiles()
|
||||
.then(() => {
|
||||
process.exit(0)
|
||||
})
|
||||
.catch(err => {
|
||||
console.log('Aiee, something went wrong!', err)
|
||||
process.exit(1)
|
||||
})
|
Loading…
Add table
Reference in a new issue