Każde nowe wydanie Server CE/Server Pro informuje w informacjach o wydaniu o wszelkich zmianach obsługiwanej wersji MongoDB.
Czy powinienem zaktualizować MongoDB?
Aktualizację wersji MongoDB należy rozważać wyłącznie wtedy, gdy planujesz aktualizację instancji Server CE/Server Pro. Jeśli używasz wersji MongoDB nowszej niż zalecana dla Twojej bieżącej (lub docelowej) wersji, nie musisz wprowadzać żadnych zmian. Jeśli napotkasz konkretny problem, który Twoim zdaniem może być związany z bieżącą wersją MongoDB, możesz zgłosić problem, jeśli korzystasz z Server CE, lub skontaktować się z pomocą techniczną Overleaf, jeśli korzystasz z Server Pro.Sprawdzanie wersji MongoDB
Otwarcie powłokimongo powinno od razu wyświetlić bieżącą wersję.
Użytkownicy Overleaf Toolkit:
Proces aktualizacji
Aktualizacja wersji MongoDB podczas aktualizacji instancji Server CE/Server Pro przebiega następująco:- Zdecyduj, do której wersji Server CE/Server Pro chcesz zaktualizować system.
- Znajdź wersję MongoDB zalecaną dla tego konkretnego wydania Overleaf Server CE/Server Pro.
- Postępuj zgodnie z instrukcjami, aby zaktualizować MongoDB do wersji docelowej.
- Zaktualizuj wersję obrazu Server CE/Server Pro i uruchom ponownie instancję.
Podczas aktualizacji Server CE/Pro zalecamy zaktualizowanie systemu do najnowszego wydania wdrożonej wersji głównej, zanim przejdziesz do najnowszego wydania kolejnej wersji głównej. Jeśli Twoje wdrożenie jest opóźnione o więcej niż jedną wersję główną względem najnowszej, konieczna będzie aktualizacja wieloetapowa.Na przykład, jeśli używasz wersji 3.5.10, musisz zaktualizować system do 3.5.13 -> przeprowadzić migrację pełnej historii projektów -> 4.2.9 -> 5.5.4.Nigdy nie pomijaj wersji głównych (3.5.10 -> 5.5.4). Jeśli używasz Toolkitu i jesteś opóźniony o więcej niż jedną wersję główną względem najnowszej, nie możesz używać skryptu
bin/upgrade, ponieważ musisz przeprowadzić ręczną aktualizację wieloetapową.Informacje o obsługiwanych wersjach
Jeśli zdecydujesz się na wcześniejszą wersję, ta tabela pokazuje zalecaną wersję MongoDB dla wcześniejszych wydań Server CE/Server Pro, ale nigdy nie należy obniżać wersji MongoDB.| Server CE/Server Pro | Wersja MongoDB | Minimalna wersja zgodności funkcji | Maksymalna wersja obsługiwana przez sterownik Node.js |
|---|---|---|---|
| 2.0.x | 3.4 | - | - |
| 2.1.x do 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 |
Powyższa minimalna wersja zgodności funkcji opiera się na wersji MongoDB zalecanej do użytku z podaną wersją Overleaf. Jeśli planujesz użyć wyższej wersji, MongoDB będzie miało własne minimalne wymagania.
Aktualizacja MongoDB
MongoDB wymaga aktualizacji krok po kroku. Oznacza to, że nie można przejść bezpośrednio, powiedzmy, z4.0 do 5.0. Najpierw trzeba zaktualizować 4.2 do 4.4, a następnie do 5.0.
MongoDB używa liczb parzystych dla wersji stabilnych.
Instrukcje aktualizacji przy uruchamianiu MongoDB poza Dockerem
Poniżej znajdują się linki do instrukcji aktualizacji MongoDB z witryny mongodb.com.- Informacje o wydaniu MongoDB — aktualizacja MongoDB z
4.2do4.4 - Informacje o wydaniu MongoDB — aktualizacja MongoDB z
4.4do5.0 - Informacje o wydaniu MongoDB — aktualizacja MongoDB z
5.0do6.0 - Informacje o wydaniu MongoDB — aktualizacja MongoDB z
6.0do7.0 - Informacje o wydaniu MongoDB — aktualizacja MongoDB z
7.0do8.0
Instrukcje dla wersji
5.0 i wyższych dotyczą instalacji w postaci zestawu replik (replica set), a nie instalacji samodzielnej. Ponieważ Server Pro/CE 4.0.1+ korzysta z transakcji, MongoDB musi działać jako zestaw replik.- Ustaw flagę zgodności zgodnie z opisem w informacjach o wydaniu MongoDB (patrz przykłady poniżej).
- Następnie zaktualizuj obraz mongo:
- Użytkownicy Toolkitu: zaktualizuj
MONGO_VERSION, np.MONGO_VERSION=6.0 - Użytkownicy Docker Compose: zaktualizuj wersję w tagu obrazu
mongo,
np.services -> mongo -> image: mongo:6.0;
- Użytkownicy Toolkitu: zaktualizuj
5.0 do 6.0
Zacznijmy od upewnienia się, że używamy MongoDB 6.0:
Użytkownicy Overleaf Toolkit:
featureCompatibilityVersion na 5.0. Robimy to, otwierając powłokę MongoDB i uruchamiając wskazane polecenie:
Użytkownicy Overleaf Toolkit:
Użytkownicy Docker Compose mogą uruchomić
docker compose exec mongo mongosh, aby otworzyć powłokę i wykonać te same polecenia co użytkownicy Toolkitu.bin/stop, ustawiamy MONGO_VERSION=6.0 w pliku config/overleaf.rc i ponownie uruchamiamy usługę mongo za pomocą bin/up mongo, aby sprawdzić, czy aktualizacja przebiegła pomyślnie.
Na koniec aktualizujemy wersję obrazu Server CE/Server Pro do wersji docelowej i odtwarzamy wszystkie usługi poleceniem bin/up -d.
Użytkownicy Docker Compose:
Następnie zatrzymujemy instancje Server CE/Server Pro i MongoDB poleceniem docker compose stop, aktualizujemy plik docker-compose.yml tak, aby używał image: mongo:6.0, a potem ponownie uruchamiamy usługę mongo poleceniem docker compose up mongo, aby sprawdzić, czy aktualizacja przebiegła pomyślnie.
Na koniec aktualizujemy wersję obrazu Server CE/Server Pro do wersji docelowej i odtwarzamy wszystkie usługi poleceniem docker compose up.
Zacznij od upewnienia się, że używasz MongoDB 6.0, korzystając z powyższych poleceń mongod --version.
Zgodnie z instrukcjami aktualizacji jedynym wymaganiem jest ustawienie featureCompatibilityVersion na 6.0. Robimy to, otwierając powłokę MongoDB i uruchamiając polecenie db.adminCommand({ setFeatureCompatibilityVersion: "6.0" }) .
Użytkownicy Overleaf Toolkit:
bin/stop, ustawiamy MONGO_VERSION=7.0 w pliku config/overleaf.rc i ponownie uruchamiamy usługę mongo za pomocą bin/up mongo, aby sprawdzić, czy aktualizacja przebiegła pomyślnie.
Na koniec aktualizujemy wersję obrazu Server CE/Server Pro do wersji docelowej i odtwarzamy wszystkie usługi poleceniem bin/up -d.
Zacznij od upewnienia się, że używasz MongoDB 7.0, korzystając z powyższych poleceń mongod --version.
Zgodnie z instrukcjami aktualizacji jedynym wymaganiem jest ustawienie featureCompatibilityVersion na 7.0. Robimy to, otwierając powłokę MongoDB i uruchamiając polecenie db.adminCommand({ setFeatureCompatibilityVersion: "7.0", confirm: true }). Pamiętaj, że wymaga to teraz dodatkowego parametru confirm: true.
bin/stop, ustawiamy MONGO_VERSION=8.0 w pliku config/overleaf.rc i ponownie uruchamiamy usługę mongo za pomocą bin/up mongo, aby sprawdzić, czy aktualizacja przebiegła pomyślnie.
Na koniec aktualizujemy wersję obrazu Server CE/Server Pro do wersji docelowej i odtwarzamy wszystkie usługi poleceniem bin/up -d.
Równoważne polecenia dla użytkowników Docker Compose
Dla użytkowników Docker Compose równoważne polecenia to:docker compose exec mongo mongod --version— wyświetla wersję mongodocker compose exec mongo mongosh— uruchamia powłokę mongo do wykonywania poleceń administracyjnychdocker compose stop— zatrzymuje serwer- Edytuj plik
docker-compose.yml, aby używałimage: mongo:6.0i w ten sposób zaktualizować wersję mongo docker compose up mongo— ponownie uruchamia usługę mongo i pozwala sprawdzić, czy aktualizacja przebiegła pomyślnie- Edytuj plik
docker-compose.yml, aby używałimage: sharelatex:VERSIONi w ten sposób zaktualizować wersję obrazu docker compose up— odtwarza wszystkie usługi.
Tworzenie roli niestandardowej
W wersji5.5.1 wprowadziliśmy sprawdzanie przy uruchomieniu, które weryfikuje wersję zgodności funkcji MongoDB. Jeśli Twoja baza danych MongoDB korzysta z uwierzytelniania (np. uwierzytelniania podstawowego), kontener sharelatex może się nie uruchomić i wyświetlić błąd uprawnień “not authorized on admin to execute command”.
Aby rozwiązać ten problem, możesz utworzyć w MongoDB nową rolę i przypisać ją do konta użytkownika używanego do dostępu do bazy danych zgodnie z poniższymi instrukcjami albo ustawić ALLOW_MONGO_ADMIN_CHECK_FAILURES=true, aby niepowodzenie sprawdzenia nie blokowało uruchomienia wdrożenia.
Ta nowa rola nadaje uprawnienia wyłącznie do odczytu parametrów serwera MongoDB na poziomie całego klastra i może być ponownie wykorzystana do celów monitorowania.

