mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2025-07-25 02:00:07 +02:00

* [CE/SP] Hotfix 5.5.1 * [web] Fix License tab in CE/SP * Added patch to improve logging * Added patch to fix create-user.mjs * Added check for `featureCompatibilityVersion` on CE/SP startup * Patch with `multer` and `tar-fs` updates * Install manually missing @paralleldrive/cuid2 on CE 5.1.1 GitOrigin-RevId: 0138dffdcb171382014a383bee13676fc873b1dd
60 lines
1.8 KiB
Diff
60 lines
1.8 KiB
Diff
--- a/services/web/modules/server-ce-scripts/scripts/check-mongodb.mjs
|
|
+++ b/services/web/modules/server-ce-scripts/scripts/check-mongodb.mjs
|
|
@@ -7,6 +7,7 @@ import {
|
|
const { ObjectId } = mongodb
|
|
|
|
const MIN_MONGO_VERSION = [6, 0]
|
|
+const MIN_MONGO_FEATURE_COMPATIBILITY_VERSION = [6, 0]
|
|
|
|
async function main() {
|
|
let mongoClient
|
|
@@ -18,6 +19,7 @@ async function main() {
|
|
}
|
|
|
|
await checkMongoVersion(mongoClient)
|
|
+ await checkFeatureCompatibilityVersion(mongoClient)
|
|
|
|
try {
|
|
await testTransactions(mongoClient)
|
|
@@ -53,6 +55,41 @@ async function checkMongoVersion(mongoClient) {
|
|
}
|
|
}
|
|
|
|
+async function checkFeatureCompatibilityVersion(mongoClient) {
|
|
+ const {
|
|
+ featureCompatibilityVersion: { version },
|
|
+ } = await mongoClient
|
|
+ .db()
|
|
+ .admin()
|
|
+ .command({ getParameter: 1, featureCompatibilityVersion: 1 })
|
|
+ const [major, minor] = version.split('.').map(v => parseInt(v))
|
|
+ const [minMajor, minMinor] = MIN_MONGO_FEATURE_COMPATIBILITY_VERSION
|
|
+
|
|
+ if (major < minMajor || (major === minMajor && minor < minMinor)) {
|
|
+ const minVersion = MIN_MONGO_FEATURE_COMPATIBILITY_VERSION.join('.')
|
|
+ console.error(`
|
|
+The MongoDB server has featureCompatibilityVersion=${version}, but Overleaf requires at least version ${minVersion}.
|
|
+
|
|
+Open a mongo shell:
|
|
+- Overleaf Toolkit deployments: $ bin/mongo
|
|
+- Legacy docker-compose.yml deployments: $ docker exec -it mongo mongosh localhost/sharelatex
|
|
+
|
|
+In the mongo shell:
|
|
+> db.adminCommand( { setFeatureCompatibilityVersion: "${minMajor}.${minMinor}" } )
|
|
+
|
|
+Verify the new value:
|
|
+> db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
|
|
+ ...
|
|
+ {
|
|
+ featureCompatibilityVersion: { version: ${minMajor}.${minMinor}' },
|
|
+...
|
|
+
|
|
+Aborting.
|
|
+`)
|
|
+ process.exit(1)
|
|
+ }
|
|
+}
|
|
+
|
|
main()
|
|
.then(() => {
|
|
console.error('Mongodb is up.')
|