Setiap rilis baru Server CE/Server Pro akan menunjukkan perubahan apa pun pada versi MongoDB yang didukung dalam catatan rilis-nya.
Apakah saya perlu memperbarui MongoDB?
Anda hanya perlu mempertimbangkan untuk memperbarui versi MongoDB jika Anda berencana meningkatkan instans Server CE/Server Pro Anda. Jika Anda menjalankan versi MongoDB yang lebih baru daripada yang direkomendasikan untuk versi Anda saat ini (atau versi target), tidak perlu melakukan perubahan apa pun. Jika Anda mengalami masalah tertentu yang menurut Anda mungkin terkait dengan versi MongoDB Anda saat ini, jangan ragu untuk membuat issue jika Anda pengguna Server CE, atau hubungi Overleaf Support jika Anda pengguna Server Pro.Memeriksa versi MongoDB Anda
Membuka shellmongo akan langsung mencetak versi saat ini.
Pengguna Overleaf Toolkit:
Proses pembaruan
Memperbarui versi MongoDB selama peningkatan instans Server CE/Server Pro Anda dilakukan sebagai berikut:- Tentukan versi Server CE/Server Pro yang ingin Anda tingkatkan.
- Temukan versi MongoDB yang direkomendasikan oleh rilis Overleaf Server CE/Server Pro tersebut.
- Ikuti petunjuk untuk meningkatkan MongoDB ke versi target.
- Tingkatkan versi image Server CE/Server Pro dan mulai ulang instans.
Saat melakukan peningkatan Server CE/Pro, kami menyarankan untuk meningkatkan ke rilis terbaru dari versi mayor yang sedang digunakan sebelum meningkatkan ke rilis terbaru dari versi mayor berikutnya. Jika penerapan Anda tertinggal lebih dari satu versi mayor dari versi terbaru, Anda akan diwajibkan melakukan peningkatan bertahap.Misalnya, jika Anda menjalankan 3.5.10, Anda perlu meningkatkan ke 3.5.13 -> Lakukan migrasi Full Project History -> 4.2.9 -> 5.5.4.Anda tidak boleh melewati versi mayor (3.5.10 -> 5.5.4). Jika Anda menggunakan Toolkit dan tertinggal lebih dari satu versi mayor dari versi terbaru, Anda tidak boleh menggunakan skrip
bin/upgrade karena Anda perlu melakukan peningkatan bertahap secara manual.Informasi dukungan versi
Jika Anda memutuskan untuk menggunakan versi yang lebih lama, tabel ini menunjukkan versi MongoDB yang direkomendasikan untuk rilis Server CE/Server Pro sebelumnya, tetapi Anda tidak boleh menurunkan versi MongoDB Anda.| Server CE/Server Pro | Versi MongoDB | Versi Kompatibilitas Fitur Minimum | Versi Maksimum yang Didukung oleh Driver Node.js |
|---|---|---|---|
| 2.0.x | 3.4 | - | - |
| 2.1.x hingga 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 |
Versi kompatibilitas fitur minimum di atas didasarkan pada versi MongoDB terkait yang direkomendasikan untuk digunakan dengan versi Overleaf yang ditampilkan. Jika Anda berencana menggunakan versi yang lebih tinggi, MongoDB akan memiliki persyaratan minimumnya sendiri.
Meningkatkan MongoDB
MongoDB memerlukan peningkatan bertahap. Artinya, Anda tidak dapat langsung beralih dari, misalnya,4.0 ke 5.0. Anda perlu terlebih dahulu memperbarui 4.2 ke 4.4, lalu ke 5.0.
MongoDB menggunakan angka genap untuk versi stabilnya.
Petunjuk pembaruan saat menjalankan MongoDB di luar Docker
Berikut adalah tautan ke petunjuk pembaruan dari mongodb.com saat meningkatkan MongoDB.- Catatan rilis MongoDB - meningkatkan MongoDB dari
4.2ke4.4 - Catatan rilis MongoDB - meningkatkan MongoDB dari
4.4ke5.0 - Catatan rilis MongoDB - meningkatkan MongoDB dari
5.0ke6.0 - Catatan rilis MongoDB - meningkatkan MongoDB dari
6.0ke7.0 - Catatan rilis MongoDB - meningkatkan MongoDB dari
7.0ke8.0
Petunjuk untuk
5.0 dan yang lebih tinggi mengarah ke instalasi replica set, bukan standalone. Karena Server Pro/CE 4.0.1+ menggunakan transaksi, MongoDB perlu dijalankan sebagai replica set.- Atur flag kompatibilitas seperti yang dijelaskan dalam catatan rilis MongoDB (lihat contoh di bawah).
- Kemudian perbarui image mongo:
- Pengguna Toolkit Perbarui
MONGO_VERSION, misalnyaMONGO_VERSION=6.0 - Pengguna Docker Compose Perbarui versi tag image
mongo,
misalnyaservices -> mongo -> image: mongo:6.0;
- Pengguna Toolkit Perbarui
5.0 ke 6.0
Mari kita mulai dengan memastikan bahwa kita menjalankan MongoDB 6.0:
Pengguna Overleaf Toolkit:
featureCompatibilityVersion diatur ke 5.0. Kita melakukannya dengan membuka shell MongoDB dan menjalankan perintah yang ditunjukkan:
Pengguna Overleaf Toolkit:
Pengguna Docker Compose dapat menjalankan
docker compose exec mongo mongosh untuk mendapatkan shell dan menjalankan perintah yang sama seperti pengguna Toolkit.bin/stop, mengatur MONGO_VERSION=6.0 di config/overleaf.rc, lalu memulai ulang layanan mongo menggunakan bin/up mongo) untuk memverifikasi bahwa pembaruan berjalan lancar.
Terakhir, kita akan memperbarui versi image Server CE/Server Pro ke versi target dan membuat ulang semua layanan menggunakan perintah bin/up -d.
Pengguna Docker Compose:
Kemudian kita akan menghentikan instans Server CE/Server Pro dan MongoDB menggunakan perintah docker compose stop, memperbarui file docker-compose.yml agar menggunakan image: mongo:6.0, lalu memulai ulang layanan mongo menggunakan perintah docker compose up mongo untuk memverifikasi bahwa pembaruan berjalan lancar.
Terakhir, kita akan memperbarui versi image Server CE/Server Pro ke versi target dan membuat ulang semua layanan menggunakan perintah docker compose up.
Mulailah dengan memastikan bahwa Anda menjalankan MongoDB 6.0 menggunakan perintah mongod --version di atas.
Menurut petunjuk peningkatan, satu-satunya persyaratan adalah featureCompatibilityVersion diatur ke 6.0. Kita melakukannya dengan membuka shell MongoDB dan menjalankan perintah db.adminCommand({ setFeatureCompatibilityVersion: "6.0" }) .
Pengguna Overleaf Toolkit:
bin/stop, mengatur MONGO_VERSION=7.0 di config/overleaf.rc, lalu memulai ulang layanan mongo menggunakan bin/up mongo) untuk memverifikasi bahwa pembaruan berjalan lancar.
Terakhir, kita akan memperbarui versi image Server CE/Server Pro ke versi target dan membuat ulang semua layanan menggunakan perintah bin/up -d.
Mulailah dengan memastikan bahwa Anda menjalankan MongoDB 7.0 menggunakan perintah mongod --version di atas.
Menurut petunjuk peningkatan, satu-satunya persyaratan adalah featureCompatibilityVersion diatur ke 7.0. Kita melakukannya dengan membuka shell MongoDB dan menjalankan perintah db.adminCommand({ setFeatureCompatibilityVersion: "7.0", confirm: true }). Perhatikan bahwa perintah ini sekarang memerlukan parameter tambahan confirm: true.
bin/stop, mengatur MONGO_VERSION=8.0 di config/overleaf.rc, lalu memulai ulang layanan mongo menggunakan bin/up mongo) untuk memverifikasi bahwa pembaruan berjalan lancar.
Terakhir, kita akan memperbarui versi image Server CE/Server Pro ke versi target dan membuat ulang semua layanan menggunakan perintah bin/up -d.
Perintah yang setara untuk pengguna docker compose
Untuk pengguna docker compose, perintah yang setara adalah:docker compose exec mongo mongod --versionuntuk menampilkan versi mongodocker compose exec mongo mongoshuntuk memulai shell mongo untuk perintah admin- Perintah
docker compose stopuntuk menghentikan server - Edit file
docker-compose.ymlagar menggunakanimage: mongo:6.0untuk meningkatkan versi mongo docker compose up mongountuk memulai ulang layanan mongo dan memverifikasi bahwa pembaruan berjalan lancar- Edit file
docker-compose.ymlagar menggunakanimage: sharelatex:VERSIONuntuk meningkatkan versi image docker compose upuntuk membuat ulang semua layanan.
Membuat role kustom
Pada versi5.5.1, kami memperkenalkan pemeriksaan saat startup untuk memverifikasi versi kompatibilitas fitur MongoDB. Jika database MongoDB Anda menggunakan autentikasi (misalnya, autentikasi dasar), kontainer sharelatex mungkin tidak dapat dimulai dan menampilkan error izin “not authorized on admin to execute command”.
Untuk mengatasinya, Anda dapat membuat role baru di MongoDB dan menetapkannya ke akun pengguna yang digunakan untuk mengakses database menggunakan petunjuk di bawah, atau mengatur ALLOW_MONGO_ADMIN_CHECK_FAILURES=true agar pemeriksaan dapat gagal tanpa mencegah penerapan dimulai.
Role baru ini hanya memberikan izin untuk membaca parameter server MongoDB tingkat cluster dan dapat digunakan kembali untuk keperluan pemantauan,

