overleaf/services/web/migrations/20230512100122_ensure_history_migration.mjs
Liangjun Song 9e15c73228 Merge pull request #20732 from overleaf/revert-20731-revert-20480-ls-convert-migration-scripts-to-esm
Revert "Revert "Convert migration scripts to ESM""

GitOrigin-RevId: 0430a3cd02b9d23bf0f4573346351dcf4ee17fa6
2024-10-14 10:58:50 +00:00

60 lines
1.5 KiB
JavaScript

import util from 'util'
const { promisify } = util
const sleep = promisify(setTimeout)
const tags = ['server-ce', 'server-pro']
const migrate = async client => {
const { db } = client
const count = await db.projects.countDocuments({
'overleaf.history.display': { $ne: true },
})
if (count > 0) {
console.error(`
-----------------------------------------------------------------------
Full Project History migration not completed for ${count} projects.
Starting with Server Pro/Community Edition version 4.0,
all projects must use the full project history feature.
Release 3.5 includes a migration process. Please go back to version
3.5 and run through the migration process:
Overleaf Toolkit setups:
toolkit$ echo "3.5.13" > config/version
toolkit$ bin/up
Legacy docker compose setups/Horizontal scaling setups:
Update the image tag for "services -> sharelatex" to
Server Pro: quay.io/sharelatex/sharelatex-pro:3.5.13.
Community Edition: sharelatex/sharelatex:3.5.13
Then use "docker compose up" to apply the changes.
Documentation for the migration process:
https://github.com/overleaf/overleaf/wiki/Full-Project-History-Migration
Refusing to start up, exiting in 10s.
-----------------------------------------------------------------------
`)
await sleep(10_000)
throw new Error(
`Found ${count} projects not migrated to Full Project History`
)
}
}
const rollback = async client => {
// Not applicable
}
export default {
tags,
migrate,
rollback,
}