Skip to main content
سيشير أي إصدار جديد من Server CE/Server Pro إلى أي تغيير في إصدار MongoDB المدعوم ضمن ملاحظات الإصدار الخاصة به.

هل يجب أن أحدّث MongoDB؟

يجب أن تفكر في تحديث إصدار MongoDB فقط إذا كنت تخطط لترقية نسخة Server CE/Server Pro الخاصة بك. إذا كنت تشغّل إصدارًا من MongoDB أحدث من الإصدار الموصى به لإصدارك الحالي (أو المستهدف)، فلا داعي لإجراء أي تغييرات.
يجب ألا تُرجع إصدار MongoDB إلى إصدار أقدم أبدًا.
إذا واجهت مشكلة محددة تعتقد أنها قد تكون مرتبطة بإصدار MongoDB الحالي لديك، فلا تتردد في فتح بلاغ (issue) إذا كنت من مستخدمي Server CE، أو التواصل مع دعم Overleaf إذا كنت من مستخدمي Server Pro.

التحقق من إصدار MongoDB

يجب أن يؤدي فتح صدفة mongo إلى طباعة الإصدار الحالي فورًا. مستخدمو Overleaf Toolkit:
مستخدمو Docker Compose:

عملية التحديث

يتم تحديث إصدار MongoDB أثناء ترقية نسخة Server CE/Server Pro على النحو التالي:
  1. حدّد إصدار Server CE/Server Pro الذي تخطط للترقية إليه.
  2. اعثر على إصدار MongoDB الموصى به لذلك الإصدار المحدد من Overleaf Server CE/Server Pro.
  3. اتبع التعليمات لترقية MongoDB إلى الإصدار المستهدف.
  4. رقِّ إصدار صورة Server CE/Server Pro وأعد تشغيل النسخة.
توصيتنا هي ترقية Server CE/Server Pro دائمًا إلى أحدث إصدار متاح، لأنه مضمون الدعم دائمًا (لمستخدمي 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.x3.4--
من 2.1.x إلى 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
يستند الحد الأدنى لإصدار توافق الميزات أعلاه إلى إصدار MongoDB المقابل الموصى باستخدامه مع إصدار Overleaf الموضح. إذا كنت تخطط لاستخدام إصدار أعلى، فسيكون لـ MongoDB حدّه الأدنى الخاص.
يمكنك الاطلاع على جدول التوافق الذي يحدد الإصدارات المدعومة من برنامج تشغيل MongoDB لـ Node.js للاستخدام مع MongoDB هنا. يمكنك الاطلاع على حالة انتهاء الدعم لكل إصدار من MongoDB هنا.

ترقية MongoDB

يتطلب MongoDB ترقيات تدريجية خطوة بخطوة. وهذا يعني أنه لا يمكنك الانتقال مباشرةً من 4.0 إلى 5.0 مثلًا. بل تحتاج أولًا إلى التحديث من 4.2 إلى 4.4، ثم إلى 5.0.
يستخدم MongoDB الأرقام الزوجية لإصداراته المستقرة.

تعليمات التحديث عند تشغيل MongoDB خارج Docker

فيما يلي روابط لتعليمات التحديث من mongodb.com عند ترقية MongoDB.
تشير تعليمات الإصدار 5.0 وما بعده إلى تثبيت بنمط مجموعة النسخ المتماثلة (replica set) بدلًا من التثبيت المستقل. ونظرًا لأن Server Pro/CE 4.0.1+ يستخدم المعاملات (transactions)، فيجب تشغيل MongoDB كمجموعة نسخ متماثلة.
أصبح توثيق MongoDB من 3.2 إلى 4.2 متاحًا الآن عبر https://www.mongodb.com/docs/legacy/
التعليمات الأساسية في معظم الحالات، يتطلب التحديث تعيين علامة توافق قبل تحديث إصدار mongo فعليًا. والخطوات كما يلي:
  1. عيّن علامة التوافق كما هو موضح في ملاحظات إصدار MongoDB (انظر الأمثلة أدناه).
  2. ثم حدّث صورة mongo:
    1. مستخدمو الـ Toolkit: حدّث MONGO_VERSION، مثل MONGO_VERSION=6.0
    2. مستخدمو Docker Compose: حدّث إصدار وسم صورة mongo،
      مثل services -> mongo -> image: mongo:6.0؛
مثال: ترقية MongoDB من 5.0 إلى 6.0 لنبدأ بالتأكد من أننا نشغّل MongoDB 6.0: مستخدمو Overleaf Toolkit:
مستخدمو Docker Compose:
وفقًا لـ تعليمات الترقية، فإن المتطلب الوحيد هو تعيين featureCompatibilityVersion إلى 5.0. نقوم بذلك بفتح صدفة MongoDB وتشغيل الأمر المشار إليه: مستخدمو Overleaf Toolkit:
يمكن لمستخدمي Docker Compose تشغيل docker compose exec mongo mongosh للحصول على صدفة وتشغيل الأوامر نفسها التي يشغّلها مستخدمو الـ Toolkit.
مستخدمو Overleaf Toolkit: بعد ذلك سنوقف نسختي Server CE/Server Pro وMongoDB باستخدام الأمر 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:
بعد ذلك سنوقف نسختي Server CE/Server Pro وMongoDB باستخدام الأمر 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.
بعد ذلك سنوقف نسختي Server CE/Server Pro وMongoDB باستخدام الأمر 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 لعرض إصدار 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 على مستوى العنقود (cluster) فقط، ويمكن إعادة استخدامه لأغراض المراقبة،
آخر تعديل في ٥ أكتوبر ٢٠٢٦