سيشير أي إصدار جديد من Server CE/Server Pro إلى أي تغيير في إصدار MongoDB المدعوم ضمن ملاحظات الإصدار الخاصة به.
هل يجب أن أحدّث MongoDB؟
يجب أن تفكر في تحديث إصدار MongoDB فقط إذا كنت تخطط لترقية نسخة Server CE/Server Pro الخاصة بك. إذا كنت تشغّل إصدارًا من MongoDB أحدث من الإصدار الموصى به لإصدارك الحالي (أو المستهدف)، فلا داعي لإجراء أي تغييرات. إذا واجهت مشكلة محددة تعتقد أنها قد تكون مرتبطة بإصدار MongoDB الحالي لديك، فلا تتردد في فتح بلاغ (issue) إذا كنت من مستخدمي Server CE، أو التواصل مع دعم Overleaf إذا كنت من مستخدمي Server Pro.التحقق من إصدار MongoDB
يجب أن يؤدي فتح صدفةmongo إلى طباعة الإصدار الحالي فورًا.
مستخدمو Overleaf Toolkit:
عملية التحديث
يتم تحديث إصدار MongoDB أثناء ترقية نسخة Server CE/Server Pro على النحو التالي:- حدّد إصدار Server CE/Server Pro الذي تخطط للترقية إليه.
- اعثر على إصدار MongoDB الموصى به لذلك الإصدار المحدد من Overleaf Server CE/Server Pro.
- اتبع التعليمات لترقية MongoDB إلى الإصدار المستهدف.
- رقِّ إصدار صورة Server CE/Server Pro وأعد تشغيل النسخة.
عند إجراء ترقية لـ Server CE/Pro، نوصي بالترقية إلى أحدث إصدار من الإصدار الرئيسي المنشور قبل الترقية إلى أحدث إصدار من الإصدار الرئيسي التالي. إذا كان نشرك متأخرًا بأكثر من إصدار رئيسي واحد عن الأحدث، فسيتعين عليك إجراء ترقية متعددة المراحل.على سبيل المثال، إذا كنت تشغّل 3.5.10، فستحتاج إلى الترقية إلى 3.5.13 -> إجراء ترحيل سجل المشروع الكامل -> 4.2.9 -> 5.5.4.يجب ألا تتخطى الإصدارات الرئيسية أبدًا (3.5.10 -> 5.5.4). إذا كنت تستخدم الـ Toolkit وكنت متأخرًا بأكثر من إصدار رئيسي واحد عن الأحدث، فيجب ألا تستخدم السكربت
bin/upgrade، إذ ستحتاج إلى إجراء ترقية يدوية متعددة المراحل.معلومات دعم الإصدارات
في حال قررت الانتقال إلى إصدار أقدم، يوضح هذا الجدول إصدار MongoDB الموصى به للإصدارات الأقدم من Server CE/Server Pro، لكن يجب ألا تُرجع إصدار 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 |
يستند الحد الأدنى لإصدار توافق الميزات أعلاه إلى إصدار MongoDB المقابل الموصى باستخدامه مع إصدار Overleaf الموضح. إذا كنت تخطط لاستخدام إصدار أعلى، فسيكون لـ MongoDB حدّه الأدنى الخاص.
ترقية MongoDB
يتطلب MongoDB ترقيات تدريجية خطوة بخطوة. وهذا يعني أنه لا يمكنك الانتقال مباشرةً من4.0 إلى 5.0 مثلًا. بل تحتاج أولًا إلى التحديث من 4.2 إلى 4.4، ثم إلى 5.0.
يستخدم MongoDB الأرقام الزوجية لإصداراته المستقرة.
تعليمات التحديث عند تشغيل MongoDB خارج Docker
فيما يلي روابط لتعليمات التحديث من mongodb.com عند ترقية MongoDB.- ملاحظات إصدار 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 وما بعده إلى تثبيت بنمط مجموعة النسخ المتماثلة (replica set) بدلًا من التثبيت المستقل. ونظرًا لأن Server Pro/CE 4.0.1+ يستخدم المعاملات (transactions)، فيجب تشغيل 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، ونعيّن MONGO_VERSION=6.0 في config/overleaf.rc، ثم نعيد تشغيل خدمة mongo باستخدام bin/up mongo) للتحقق من أن التحديث تم بسلاسة.
أخيرًا، سنحدّث إصدار صورة Server CE/Server Pro إلى إصدارنا المستهدف ونعيد إنشاء جميع الخدمات باستخدام الأمر bin/up -d.
مستخدمو Docker Compose:
بعد ذلك سنوقف نسختي Server CE/Server Pro وMongoDB باستخدام الأمر docker compose stop، ونحدّث ملف docker-compose.yml لاستخدام image: mongo:6.0، ثم نعيد تشغيل خدمة mongo باستخدام الأمر docker compose up mongo للتحقق من أن التحديث تم بسلاسة.
أخيرًا، سنحدّث إصدار صورة Server CE/Server Pro إلى إصدارنا المستهدف ونعيد إنشاء جميع الخدمات باستخدام الأمر docker compose up.
ابدأ بالتأكد من أنك تشغّل MongoDB 6.0 باستخدام أوامر mongod --version أعلاه.
وفقًا لـ تعليمات الترقية، فإن المتطلب الوحيد هو تعيين featureCompatibilityVersion إلى 6.0. نقوم بذلك بفتح صدفة MongoDB وتشغيل الأمر db.adminCommand({ setFeatureCompatibilityVersion: "6.0" }) .
مستخدمو Overleaf Toolkit:
bin/stop، ونعيّن MONGO_VERSION=7.0 في config/overleaf.rc، ثم نعيد تشغيل خدمة mongo باستخدام bin/up mongo) للتحقق من أن التحديث تم بسلاسة.
أخيرًا، سنحدّث إصدار صورة Server CE/Server Pro إلى إصدارنا المستهدف ونعيد إنشاء جميع الخدمات باستخدام الأمر bin/up -d.
ابدأ بالتأكد من أنك تشغّل MongoDB 7.0 باستخدام أوامر mongod --version أعلاه.
وفقًا لـ تعليمات الترقية، فإن المتطلب الوحيد هو تعيين featureCompatibilityVersion إلى 7.0. نقوم بذلك بفتح صدفة MongoDB وتشغيل الأمر db.adminCommand({ setFeatureCompatibilityVersion: "7.0", confirm: true }). لاحظ أن هذا يتطلب الآن معاملًا إضافيًا هو confirm: true.
bin/stop، ونعيّن MONGO_VERSION=8.0 في config/overleaf.rc، ثم نعيد تشغيل خدمة mongo باستخدام bin/up mongo) للتحقق من أن التحديث تم بسلاسة.
أخيرًا، سنحدّث إصدار صورة Server CE/Server Pro إلى إصدارنا المستهدف ونعيد إنشاء جميع الخدمات باستخدام الأمر bin/up -d.
الأوامر المكافئة لمستخدمي docker compose
بالنسبة لمستخدمي docker compose، فإن الأوامر المكافئة هي:docker compose exec mongo mongod --versionلعرض إصدار mongodocker 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 على مستوى العنقود (cluster) فقط، ويمكن إعادة استخدامه لأغراض المراقبة،

