Každé nové vydání Server CE/Server Pro uvádí ve svých poznámkách k vydání případnou změnu podporované verze MongoDB.
Mám aktualizovat MongoDB?
Aktualizaci verze MongoDB byste měli zvažovat pouze tehdy, pokud plánujete upgrade své instance Server CE/Server Pro. Pokud používáte verzi MongoDB novější, než je doporučená pro vaši aktuální (nebo cílovou) verzi, není třeba nic měnit. Pokud narazíte na konkrétní problém, o kterém si myslíte, že by mohl souviset s vaší aktuální verzí MongoDB, neváhejte nahlásit issue, pokud jste uživatelem Server CE, nebo kontaktujte podporu Overleaf, pokud jste uživatelem Server Pro.Zjištění verze MongoDB
Po otevření shellumongo by se měla okamžitě vypsat aktuální verze.
Uživatelé Overleaf Toolkit:
Postup aktualizace
Aktualizace verze MongoDB během upgradu instance Server CE/Server Pro probíhá takto:- Rozhodněte, na kterou verzi Server CE/Server Pro chcete provést upgrade.
- Zjistěte verzi MongoDB doporučenou pro dané vydání Overleaf Server CE/Server Pro.
- Podle pokynů proveďte upgrade MongoDB na cílovou verzi.
- Proveďte upgrade verze obrazu Server CE/Server Pro a restartujte instanci.
Při upgradu Server CE/Pro doporučujeme nejprve provést upgrade na nejnovější vydání nasazené hlavní verze, a teprve poté na nejnovější vydání následující hlavní verze. Pokud je vaše nasazení o více než jednu hlavní verzi pozadu za nejnovější, budete muset provést upgrade v několika krocích.Pokud například používáte verzi 3.5.10, budete muset provést upgrade na 3.5.13 -> provést migraci na úplnou historii projektů -> 4.2.9 -> 5.5.4.Hlavní verze byste nikdy neměli přeskakovat (3.5.10 -> 5.5.4). Pokud používáte Toolkit a jste o více než jednu hlavní verzi pozadu za nejnovější, nesmíte používat skript
bin/upgrade, protože budete muset provést ruční upgrade v několika krocích.Informace o podpoře verzí
Pokud se rozhodnete přejít na starší verzi, tato tabulka uvádí doporučenou verzi MongoDB pro starší vydání Server CE/Server Pro; verzi MongoDB byste však nikdy neměli snižovat.| Server CE/Server Pro | Verze MongoDB | Minimální verze kompatibility funkcí | Maximální verze podporovaná ovladačem Node.js |
|---|---|---|---|
| 2.0.x | 3.4 | - | - |
| 2.1.x až 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 |
Výše uvedená minimální verze kompatibility funkcí vychází z odpovídající verze MongoDB doporučené pro použití s uvedenou verzí Overleaf. Pokud plánujete použít vyšší verzi, bude mít MongoDB vlastní minimální požadavek.
Upgrade MongoDB
MongoDB vyžaduje upgrade po jednotlivých krocích. To znamená, že nemůžete přejít přímo například z4.0 na 5.0. Nejprve musíte aktualizovat z 4.2 na 4.4 a poté na 5.0.
MongoDB používá pro své stabilní verze sudá čísla.
Pokyny k aktualizaci při provozu MongoDB mimo Docker
Zde jsou odkazy na pokyny k aktualizaci z mongodb.com pro upgrade MongoDB.- Poznámky k vydání MongoDB – upgrade MongoDB z
4.2na4.4 - Poznámky k vydání MongoDB – upgrade MongoDB z
4.4na5.0 - Poznámky k vydání MongoDB – upgrade MongoDB z
5.0na6.0 - Poznámky k vydání MongoDB – upgrade MongoDB z
6.0na7.0 - Poznámky k vydání MongoDB – upgrade MongoDB z
7.0na8.0
Pokyny pro verzi
5.0 a vyšší odkazují na instalaci v režimu replica set, nikoli na samostatnou instalaci. Protože Server Pro/CE 4.0.1+ používá transakce, musí MongoDB běžet jako replica set.- Nastavte příznak kompatibility podle popisu v poznámkách k vydání MongoDB (viz příklady níže).
- Poté aktualizujte obraz mongo:
- Uživatelé Toolkitu Aktualizujte
MONGO_VERSION, např.MONGO_VERSION=6.0 - Uživatelé Docker Compose Aktualizujte verzi tagu obrazu
mongo,
např.services -> mongo -> image: mongo:6.0;
- Uživatelé Toolkitu Aktualizujte
5.0 na 6.0
Začněme ověřením, že používáme MongoDB 6.0:
Uživatelé Overleaf Toolkit:
featureCompatibilityVersion nastaveno na 5.0. Uděláme to tak, že otevřeme shell MongoDB a spustíme uvedený příkaz:
Uživatelé Overleaf Toolkit:
Uživatelé Docker Compose mohou spustit
docker compose exec mongo mongosh, čímž získají shell, a spustit stejné příkazy jako uživatelé Toolkitu.bin/stop, nastavíme MONGO_VERSION=6.0 v config/overleaf.rc a poté restartujeme službu mongo pomocí bin/up mongo), abychom ověřili, že aktualizace proběhla hladce.
Nakonec aktualizujeme verzi obrazu Server CE/Server Pro na cílovou verzi a pomocí příkazu bin/up -d znovu vytvoříme všechny služby.
Uživatelé Docker Compose:
Poté zastavíme instance Server CE/Server Pro a MongoDB pomocí příkazu docker compose stop, upravíme soubor docker-compose.yml tak, aby používal image: mongo:6.0, a poté restartujeme službu mongo příkazem docker compose up mongo, abychom ověřili, že aktualizace proběhla hladce.
Nakonec aktualizujeme verzi obrazu Server CE/Server Pro na cílovou verzi a pomocí příkazu docker compose up znovu vytvoříme všechny služby.
Začněte ověřením, že používáte MongoDB 6.0, pomocí výše uvedených příkazů mongod --version.
Podle pokynů k upgradu je jediným požadavkem mít featureCompatibilityVersion nastaveno na 6.0. Uděláme to tak, že otevřeme shell MongoDB a spustíme příkaz db.adminCommand({ setFeatureCompatibilityVersion: "6.0" }) .
Uživatelé Overleaf Toolkit:
bin/stop, nastavíme MONGO_VERSION=7.0 v config/overleaf.rc a poté restartujeme službu mongo pomocí bin/up mongo), abychom ověřili, že aktualizace proběhla hladce.
Nakonec aktualizujeme verzi obrazu Server CE/Server Pro na cílovou verzi a pomocí příkazu bin/up -d znovu vytvoříme všechny služby.
Začněte ověřením, že používáte MongoDB 7.0, pomocí výše uvedených příkazů mongod --version.
Podle pokynů k upgradu je jediným požadavkem mít featureCompatibilityVersion nastaveno na 7.0. Uděláme to tak, že otevřeme shell MongoDB a spustíme příkaz db.adminCommand({ setFeatureCompatibilityVersion: "7.0", confirm: true }). Upozorňujeme, že nyní je vyžadován další parametr confirm: true.
bin/stop, nastavíme MONGO_VERSION=8.0 v config/overleaf.rc a poté restartujeme službu mongo pomocí bin/up mongo), abychom ověřili, že aktualizace proběhla hladce.
Nakonec aktualizujeme verzi obrazu Server CE/Server Pro na cílovou verzi a pomocí příkazu bin/up -d znovu vytvoříme všechny služby.
Ekvivalentní příkazy pro uživatele docker compose
Pro uživatele docker compose jsou ekvivalentní příkazy tyto:docker compose exec mongo mongod --versionpro zobrazení verze mongodocker compose exec mongo mongoshpro spuštění shellu mongo pro administrátorské příkazy- příkaz
docker compose stoppro zastavení serveru - Upravte soubor
docker-compose.ymltak, aby používalimage: mongo:6.0, a tím proveďte upgrade verze mongo docker compose up mongopro restart služby mongo a ověření, že aktualizace proběhla hladce- Upravte soubor
docker-compose.ymltak, aby používalimage: sharelatex:VERSION, a tím proveďte upgrade verze obrazu docker compose uppro opětovné vytvoření všech služeb.
Vytvoření vlastní role
Ve verzi5.5.1 jsme zavedli kontrolu při spuštění, která ověřuje verzi kompatibility funkcí MongoDB. Pokud vaše databáze MongoDB používá ověřování (např. základní ověřování), kontejner sharelatex se nemusí spustit a zobrazí chybu oprávnění „not authorized on admin to execute command“.
Chcete-li to vyřešit, můžete buď podle níže uvedených pokynů vytvořit v MongoDB novou roli a přiřadit ji uživatelskému účtu, který se používá pro přístup k databázi, nebo nastavit ALLOW_MONGO_ADMIN_CHECK_FAILURES=true, aby kontrola mohla selhat, aniž by zabránila spuštění nasazení.
Tato nová role uděluje pouze oprávnění ke čtení parametrů serveru MongoDB platných pro celý cluster a lze ji znovu použít i pro účely monitorování,

