Skip to main content
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.
Nigdy nie należy obniżać wersji MongoDB.
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łoki mongo powinno od razu wyświetlić bieżącą wersję. Użytkownicy Overleaf Toolkit:
Użytkownicy Docker Compose:

Proces aktualizacji

Aktualizacja wersji MongoDB podczas aktualizacji instancji Server CE/Server Pro przebiega następująco:
  1. Zdecyduj, do której wersji Server CE/Server Pro chcesz zaktualizować system.
  2. Znajdź wersję MongoDB zalecaną dla tego konkretnego wydania Overleaf Server CE/Server Pro.
  3. Postępuj zgodnie z instrukcjami, aby zaktualizować MongoDB do wersji docelowej.
  4. Zaktualizuj wersję obrazu Server CE/Server Pro i uruchom ponownie instancję.
Zalecamy zawsze aktualizować Server CE/Server Pro do najnowszej dostępnej wersji, ponieważ jej wsparcie jest zawsze gwarantowane (dotyczy tylko użytkowników Server Pro).
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ą.
Przed każdą aktualizacją wersji głównej koniecznie wykonaj spójną kopię zapasową, aby w razie potrzeby móc wycofać zmiany.

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 ProWersja MongoDBMinimalna wersja zgodności funkcjiMaksymalna wersja obsługiwana przez sterownik Node.js
2.0.x3.4--
2.1.x do 2.4.x3.6--
>=2.5.04.0--
>=3.1.04.2--
>=3.2.04.4--
>=4.2.05.0--
>=5.1.06.0--
>=5.3.16.05.08.0
>=5.5.06.06.08.0
6.0.08.08.08.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.
Tabelę zgodności określającą wersje sterownika MongoDB Node.js obsługiwane z poszczególnymi wersjami MongoDB znajdziesz tutaj. Status zakończenia wsparcia każdej wersji MongoDB znajdziesz tutaj.

Aktualizacja MongoDB

MongoDB wymaga aktualizacji krok po kroku. Oznacza to, że nie można przejść bezpośrednio, powiedzmy, z 4.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.
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.
Dokumentacja MongoDB w wersjach od 3.2 do 4.2 jest teraz dostępna pod adresem https://www.mongodb.com/docs/legacy/
Podstawowe instrukcje W większości przypadków aktualizacja wymaga ustawienia flagi zgodności przed faktyczną zmianą wersji mongo. Kroki są następujące:
  1. Ustaw flagę zgodności zgodnie z opisem w informacjach o wydaniu MongoDB (patrz przykłady poniżej).
  2. Następnie zaktualizuj obraz mongo:
    1. Użytkownicy Toolkitu: zaktualizuj MONGO_VERSION, np. MONGO_VERSION=6.0
    2. Użytkownicy Docker Compose: zaktualizuj wersję w tagu obrazu mongo,
      np. services -> mongo -> image: mongo:6.0;
Przykład: aktualizacja MongoDB z 5.0 do 6.0 Zacznijmy od upewnienia się, że używamy MongoDB 6.0: Użytkownicy Overleaf Toolkit:
Użytkownicy Docker Compose:
Zgodnie z instrukcjami aktualizacji jedynym wymaganiem jest ustawienie 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.
Użytkownicy Overleaf Toolkit: Następnie zatrzymujemy instancje Server CE/Server Pro i MongoDB poleceniem 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:
Następnie zatrzymujemy instancje Server CE/Server Pro i MongoDB poleceniem 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.
Następnie zatrzymujemy instancje Server CE/Server Pro i MongoDB poleceniem 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ę mongo
  • docker compose exec mongo mongosh — uruchamia powłokę mongo do wykonywania poleceń administracyjnych
  • docker compose stop — zatrzymuje serwer
  • Edytuj plik docker-compose.yml, aby używał image: mongo:6.0 i 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:VERSION i w ten sposób zaktualizować wersję obrazu
  • docker compose up — odtwarza wszystkie usługi.

Tworzenie roli niestandardowej

W wersji 5.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.
Ostatnia modyfikacja 5 października 2026