Varje ny version av Server CE/Server Pro anger eventuella ändringar av vilken MongoDB-version som stöds i sina versionsinformationer.
Bör jag uppdatera MongoDB?
Du bör endast överväga att uppdatera din MongoDB-version om du planerar att uppgradera din instans av Server CE/Server Pro. Om du kör en MongoDB-version som är nyare än den som rekommenderas för din nuvarande (eller planerade) version behöver du inte göra några ändringar. Om du upplever ett specifikt problem som du tror kan bero på din nuvarande version av MongoDB får du gärna skapa ett ärende om du använder Server CE, eller kontakta Overleaf Support om du använder Server Pro.Kontrollera din MongoDB-version
När du öppnarmongo-skalet bör den aktuella versionen skrivas ut direkt.
Användare av Overleaf Toolkit:
Uppdateringsprocess
Så här uppdaterar du MongoDB-versionen i samband med en uppgradering av din Server CE/Server Pro-instans:- Bestäm vilken version av Server CE/Server Pro du planerar att uppgradera till.
- Ta reda på vilken MongoDB-version som rekommenderas för just den versionen av Overleaf Server CE/Server Pro.
- Följ instruktionerna för att uppgradera MongoDB till målversionen.
- Uppgradera avbildningsversionen av Server CE/Server Pro och starta om instansen.
När du uppgraderar Server CE/Pro rekommenderar vi att du uppgraderar till den senaste versionen av den installerade huvudversionen innan du uppgraderar till den senaste versionen av nästa huvudversion. Om din installation ligger mer än en huvudversion efter den senaste måste du utföra en uppgradering i flera steg.Om du till exempel kör 3.5.10 behöver du uppgradera till 3.5.13 -> utföra migreringen av Full Project History -> 4.2.9 -> 5.5.4.Du bör aldrig hoppa över huvudversioner (3.5.10 -> 5.5.4). Om du använder Toolkit och ligger mer än en huvudversion efter den senaste får du inte använda skriptet
bin/upgrade, eftersom du måste utföra en manuell uppgradering i flera steg.Information om versionsstöd
Om du väljer att gå till en tidigare version visar den här tabellen vilken MongoDB-version som rekommenderas för tidigare versioner av Server CE/Server Pro, men du bör aldrig nedgradera din MongoDB-version.| Server CE/Server Pro | MongoDB-version | Minsta funktionskompatibilitetsversion | Högsta version som stöds av Node.js-drivrutinen |
|---|---|---|---|
| 2.0.x | 3.4 | - | - |
| 2.1.x till 2.4.x | 3.6 | - | - |
| >=2.5.0 | 4.0 | - | - |
| >=3.1.0 | 4.2 | - | - |
| >=3.2.0 | 4.4 | - | - |
| >=4.2.0 | 5.0 | - | - |
| >=5.1.0 | 6.0 | - | - |
| >=5.3.1 | 6.0 | 5.0 | 8.0 |
| >=5.5.0 | 6.0 | 6.0 | 8.0 |
| 6.0.0 | 8.0 | 8.0 | 8.0 |
Den minsta funktionskompatibilitetsversionen ovan baseras på den MongoDB-version som rekommenderas för användning med den angivna versionen av Overleaf. Om du planerar att använda en högre version har MongoDB sina egna minimikrav.
Uppgradera MongoDB
MongoDB kräver stegvisa uppgraderingar. Det innebär att du inte kan gå direkt från, säg,4.0 till 5.0. Du måste först uppdatera från 4.2 till 4.4 och sedan till 5.0.
MongoDB använder jämna nummer för sina stabila versioner.
Uppdateringsinstruktioner när MongoDB körs utanför Docker
Här är länkar till uppdateringsinstruktionerna från mongodb.com för uppgradering av MongoDB.- MongoDB versionsinformation - uppgradera MongoDB från
4.2till4.4 - MongoDB versionsinformation - uppgradera MongoDB från
4.4till5.0 - MongoDB versionsinformation - uppgradera MongoDB från
5.0till6.0 - MongoDB versionsinformation - uppgradera MongoDB från
6.0till7.0 - MongoDB versionsinformation - uppgradera MongoDB från
7.0till8.0
Instruktionerna för
5.0 och senare avser en installation med replikuppsättning (replica set) i stället för en fristående installation. Eftersom Server Pro/CE 4.0.1+ använder transaktioner måste MongoDB köras som en replikuppsättning.- Sätt kompatibilitetsflaggan enligt beskrivningen i MongoDB:s versionsinformation (se exemplen nedan).
- Uppdatera sedan mongo-avbildningen:
- Toolkit-användare Uppdatera
MONGO_VERSION, t.ex.MONGO_VERSION=6.0 - Docker Compose-användare Uppdatera versionen i taggen för avbildningen
mongo,
t.ex.services -> mongo -> image: mongo:6.0;
- Toolkit-användare Uppdatera
5.0 till 6.0
Vi börjar med att kontrollera att vi kör MongoDB 6.0:
Användare av Overleaf Toolkit:
featureCompatibilityVersion är satt till 5.0. Det gör vi genom att öppna ett MongoDB-skal och köra det angivna kommandot:
Användare av Overleaf Toolkit:
Docker Compose-användare kan köra
docker compose exec mongo mongosh för att få ett skal och köra samma kommandon som Toolkit-användare.bin/stop, sätter MONGO_VERSION=6.0 i config/overleaf.rc och startar sedan om tjänsten mongo med bin/up mongo) för att kontrollera att uppdateringen gick smidigt.
Slutligen uppdaterar vi avbildningsversionen av Server CE/Server Pro till vår målversion och återskapar alla tjänster med kommandot bin/up -d.
Användare av Docker Compose:
Därefter stoppar vi Server CE/Server Pro- och MongoDB-instanserna med kommandot docker compose stop, uppdaterar filen docker-compose.yml så att den använder image: mongo:6.0 och startar sedan om tjänsten mongo med kommandot docker compose up mongo för att kontrollera att uppdateringen gick smidigt.
Slutligen uppdaterar vi avbildningsversionen av Server CE/Server Pro till vår målversion och återskapar alla tjänster med kommandot docker compose up.
Börja med att kontrollera att du kör MongoDB 6.0 med kommandona mongod --version ovan.
Enligt uppgraderingsinstruktionerna är det enda kravet att featureCompatibilityVersion är satt till 6.0. Det gör vi genom att öppna ett MongoDB-skal och köra kommandot db.adminCommand({ setFeatureCompatibilityVersion: "6.0" }) .
Användare av Overleaf Toolkit:
bin/stop, sätter MONGO_VERSION=7.0 i config/overleaf.rc och startar sedan om tjänsten mongo med bin/up mongo) för att kontrollera att uppdateringen gick smidigt.
Slutligen uppdaterar vi avbildningsversionen av Server CE/Server Pro till vår målversion och återskapar alla tjänster med kommandot bin/up -d.
Börja med att kontrollera att du kör MongoDB 7.0 med kommandona mongod --version ovan.
Enligt uppgraderingsinstruktionerna är det enda kravet att featureCompatibilityVersion är satt till 7.0. Det gör vi genom att öppna ett MongoDB-skal och köra kommandot db.adminCommand({ setFeatureCompatibilityVersion: "7.0", confirm: true }). Observera att detta nu kräver den extra parametern confirm: true.
bin/stop, sätter MONGO_VERSION=8.0 i config/overleaf.rc och startar sedan om tjänsten mongo med bin/up mongo) för att kontrollera att uppdateringen gick smidigt.
Slutligen uppdaterar vi avbildningsversionen av Server CE/Server Pro till vår målversion och återskapar alla tjänster med kommandot bin/up -d.
Motsvarande kommandon för Docker Compose-användare
För Docker Compose-användare är motsvarande kommandon:docker compose exec mongo mongod --versionför att visa mongo-versionendocker compose exec mongo mongoshför att starta ett mongo-skal för administrationskommandon- kommandot
docker compose stopför att stoppa servern - Redigera filen
docker-compose.ymlså att den använderimage: mongo:6.0för att uppgradera mongo-versionen docker compose up mongoför att starta om mongo-tjänsten och kontrollera att uppdateringen gick smidigt- Redigera filen
docker-compose.ymlså att den använderimage: sharelatex:VERSIONför att uppgradera avbildningsversionen docker compose upför att återskapa alla tjänster.
Skapa en anpassad roll
I version5.5.1 införde vi en kontroll vid uppstart som verifierar funktionskompatibilitetsversionen för MongoDB. Om din MongoDB-databas använder autentisering (t.ex. grundläggande autentisering) kan det hända att containern sharelatex inte startar och visar behörighetsfelet “not authorized on admin to execute command”.
För att lösa detta kan du antingen skapa en ny roll i MongoDB och tilldela den till användarkontot som används för att komma åt databasen enligt instruktionerna nedan, eller sätta ALLOW_MONGO_ADMIN_CHECK_FAILURES=true så att kontrollen kan misslyckas utan att installationen hindras från att starta.
Den nya rollen ger endast behörighet att läsa klusteromfattande serverparametrar i MongoDB och kan även återanvändas för övervakningsändamål,

