Server CE/Server Pro の新しいリリースでは、サポートされる MongoDB のバージョンに変更がある場合、そのリリースノートに記載されます。
MongoDB を更新すべきか?
MongoDB のバージョンの更新を検討すべきなのは、Server CE/Server Pro のインスタンスをアップグレードする予定がある場合のみです。 現在の(または移行先の)バージョンで推奨されているものより新しいバージョンの MongoDB を実行している場合は、何も変更する必要はありません。 現在のバージョンの MongoDB に関係していると思われる特定の問題が発生した場合は、Server CE ユーザーであれば気軽に issue を作成してください。Server Pro ユーザーであれば Overleaf サポートにお問い合わせください。MongoDB のバージョンを確認する
mongo シェルを開くと、すぐに現在のバージョンが表示されます。
Overleaf Toolkit ユーザーの場合:
更新手順
Server CE/Server Pro インスタンスのアップグレード時に MongoDB のバージョンを更新する手順は次のとおりです:- アップグレード先の Server CE/Server Pro のバージョンを決定します。
- その Overleaf Server CE/Server Pro リリースで推奨されている MongoDB のバージョンを確認します。
- 手順に従って、MongoDB を目的のバージョンにアップグレードします。
- Server CE/Server Pro のイメージのバージョンをアップグレードし、インスタンスを再起動します。
Server CE/Pro をアップグレードする際は、次のメジャーバージョンの最新リリースにアップグレードする前に、現在導入しているメジャーバージョンの最新リリースにアップグレードすることをお勧めします。導入環境が最新版から 2 つ以上メジャーバージョンが遅れている場合は、複数段階のアップグレードを行う必要があります。たとえば、3.5.10 を実行している場合は、3.5.13 にアップグレード -> 完全なプロジェクト履歴の移行を実行 -> 4.2.9 -> 5.5.4 の順にアップグレードする必要があります。メジャーバージョンを飛ばすこと(3.5.10 -> 5.5.4)は決してしないでください。Toolkit を使用していて、最新版から 2 つ以上メジャーバージョンが遅れている場合は、手動で複数段階のアップグレードを行う必要があるため、
bin/upgrade スクリプトを使用しないでください。バージョンのサポート情報
以前のバージョンを使用する場合に備えて、この表では Server CE/Server Pro の以前のリリースで推奨される MongoDB のバージョンを示しています。ただし、MongoDB のバージョンを決してダウングレードしないでください。| Server CE/Server Pro | MongoDB のバージョン | 最小の機能互換性バージョン | Node.js ドライバーがサポートする最大バージョン |
|---|---|---|---|
| 2.0.x | 3.4 | - | - |
| 2.1.x 〜 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 |
上記の最小の機能互換性バージョンは、表示されている Overleaf のバージョンでの使用が推奨される、対応する MongoDB のバージョンに基づいています。より新しいバージョンを使用する予定の場合は、MongoDB 独自の最小要件があります。
MongoDB のアップグレード
MongoDB では段階的なアップグレードが必要です。つまり、たとえば4.0 から 5.0 に直接アップグレードすることはできません。まず 4.2 から 4.4 に、その後 5.0 に更新する必要があります。
MongoDB では、安定版に偶数のバージョン番号が使用されます。
Docker 外で MongoDB を実行している場合の更新手順
MongoDB をアップグレードする際の、mongodb.com の更新手順へのリンクは次のとおりです。- MongoDB リリースノート - MongoDB を
4.2から4.4にアップグレードする - MongoDB リリースノート - MongoDB を
4.4から5.0にアップグレードする - MongoDB リリースノート - MongoDB を
5.0から6.0にアップグレードする - MongoDB リリースノート - MongoDB を
6.0から7.0にアップグレードする - MongoDB リリースノート - MongoDB を
7.0から8.0にアップグレードする
5.0 以降の手順は、スタンドアロンではなくレプリカセットのインストールを対象としています。Server Pro/CE 4.0.1 以降ではトランザクションを使用するため、MongoDB をレプリカセットとして実行する必要があります。- MongoDB のリリースノートに記載されているとおりに互換性フラグを設定します(以下の例を参照)。
- 次に、mongo イメージを更新します:
- Toolkit ユーザー
MONGO_VERSIONを更新します。例:MONGO_VERSION=6.0 - Docker Compose ユーザー
mongoイメージタグのバージョンを更新します。
例:services -> mongo -> image: mongo:6.0
- Toolkit ユーザー
5.0 から 6.0 にアップグレードする
まず、MongoDB 6.0 を実行していることを確認しましょう:
Overleaf Toolkit ユーザーの場合:
featureCompatibilityVersion を 5.0 に設定することです。これを行うには、MongoDB シェルを開いて指定されたコマンドを実行します:
Overleaf Toolkit ユーザーの場合:
Docker Compose ユーザーは、
docker compose exec mongo mongosh を実行してシェルを開き、Toolkit ユーザーと同じコマンドを実行できます。bin/stop コマンドを使用して Server CE/Server Pro と MongoDB のインスタンスを停止し、config/overleaf.rc で MONGO_VERSION=6.0 を設定してから、bin/up mongo を使用して mongo サービスを再起動し、更新が問題なく行われたことを確認します。
最後に、Server CE/Server Pro のイメージのバージョンを目的のバージョンに更新し、bin/up -d コマンドを使用してすべてのサービスを再作成します。
Docker Compose ユーザーの場合:
次に、docker compose stop コマンドを使用して Server CE/Server Pro と MongoDB のインスタンスを停止し、docker-compose.yml ファイルを更新して image: mongo:6.0 を使用するようにしてから、docker compose up mongo コマンドを使用して mongo サービスを再起動し、更新が問題なく行われたことを確認します。
最後に、Server CE/Server Pro のイメージのバージョンを目的のバージョンに更新し、docker compose up コマンドを使用してすべてのサービスを再作成します。
まず、上記の mongod --version コマンドを使用して、MongoDB 6.0 を実行していることを確認します。
アップグレード手順によると、唯一の要件は featureCompatibilityVersion を 6.0 に設定することです。これを行うには、MongoDB シェルを開いて db.adminCommand({ setFeatureCompatibilityVersion: "6.0" }) コマンドを実行します。
Overleaf Toolkit ユーザーの場合:
bin/stop コマンドを使用して Server CE/Server Pro と MongoDB のインスタンスを停止し、config/overleaf.rc で MONGO_VERSION=7.0 を設定してから、bin/up mongo を使用して mongo サービスを再起動し、更新が問題なく行われたことを確認します。
最後に、Server CE/Server Pro のイメージのバージョンを目的のバージョンに更新し、bin/up -d コマンドを使用してすべてのサービスを再作成します。
まず、上記の mongod --version コマンドを使用して、MongoDB 7.0 を実行していることを確認します。
アップグレード手順によると、唯一の要件は featureCompatibilityVersion を 7.0 に設定することです。これを行うには、MongoDB シェルを開いて db.adminCommand({ setFeatureCompatibilityVersion: "7.0", confirm: true }) コマンドを実行します。このバージョンでは追加の confirm: true パラメーターが必要になったことに注意してください。
bin/stop コマンドを使用して Server CE/Server Pro と MongoDB のインスタンスを停止し、config/overleaf.rc で MONGO_VERSION=8.0 を設定してから、bin/up mongo を使用して mongo サービスを再起動し、更新が問題なく行われたことを確認します。
最後に、Server CE/Server Pro のイメージのバージョンを目的のバージョンに更新し、bin/up -d コマンドを使用してすべてのサービスを再作成します。
Docker Compose ユーザー向けの同等のコマンド
Docker Compose ユーザー向けの同等のコマンドは次のとおりです:docker compose exec mongo mongod --version:mongo のバージョンを表示しますdocker compose exec mongo mongosh:管理コマンド用の mongo シェルを起動しますdocker compose stopコマンド:サーバーを停止しますdocker-compose.ymlファイルを編集してimage: mongo:6.0を使用するようにし、mongo のバージョンをアップグレードしますdocker compose up mongo:mongo サービスを再起動し、更新が問題なく行われたことを確認しますdocker-compose.ymlファイルを編集してimage: sharelatex:VERSIONを使用するようにし、イメージのバージョンをアップグレードしますdocker compose up:すべてのサービスを再作成します。
カスタムロールの作成
バージョン5.5.1 では、MongoDB の機能互換性バージョンを確認する起動時チェックが導入されました。MongoDB データベースで認証(基本認証など)を使用している場合、sharelatex コンテナが起動せず、“not authorized on admin to execute command” という権限エラーが表示されることがあります。
これを解決するには、以下の手順に従って MongoDB で新しいロールを作成し、データベースへのアクセスに使用するユーザーアカウントに割り当てるか、ALLOW_MONGO_ADMIN_CHECK_FAILURES=true を設定して、チェックが失敗しても導入環境の起動を妨げないようにします。
この新しいロールは、クラスター全体の MongoDB サーバーパラメーターを読み取る権限のみを付与するもので、監視目的にも再利用できます。

