تريد نقل بعض البيانات من نسخة من Discourse إلى أخرى؟
يوجد أداة سطر أوامر لتصدير موضوع، أو مجموعة من المواضيع، أو فئة كاملة، وأداة أخرى لاستيرادها في الجهة الأخرى.
تصدير/استيراد المواضيع
- موضوع واحد أو أكثر وردوده
- المستخدمين الذين شاركوا في الموضوع
تصدير/استيراد الفئات
- الفئة وجميع الفئات الفرعية التابعة لها
- إعدادات الأمان الخاصة بها
- المجموعات المخصصة المذكورة في إعدادات الأمان
إذا كان أي من المجموعات لديه خيار “طلبات العضوية” مفعلاً، فسيحدث تعطل. قم بإيقاف هذا الخيار قبل عملية التصدير
- جميع المواضيع والمشاركات داخل الفئة والفئات الفرعية
- جميع المستخدمين الذين شاركوا، ويتم تعيينهم إلى المجموعات
ابدأ: تحديد المعرفات
أولاً، حدد المعرف(ات) لـ =التصدير= الذي ترغب في تصديره. ستجده في نهاية عنوان URL المستخدم للوصول إليه.
-
https://meta.discourse.org/t/how-to-contribute-to-discourse/53797 -
https://meta.discourse.org/t/how-to-contribute-to-discourse/53797/12
(في هذه الحالة أنت في منتصف موضوع - خذ الرقم الأول) -
https://meta.discourse.org/c/howto/faq/4
معرفات الفئة أو الموضوع
مواضيع متعددة
يمكنك اختيار أكثر من موضوع بإضافة المعرفات مفصولة بمسافة؛ وهذا يعمل في الحقل أعلاه (لا أعتقد أن هذا يعمل للفئات رغم ذلك):
53797 200943 124096
تشغيل سكريبت التصدير
يمكن تشغيل الأداة بصلاحيات المستخدم الجذر (root) داخل الحاوية:
cd /var/discourse
./launcher enter app
قم بتشغيل هذا الأمر:
discourse export_=Export= =ID=
يجب أن يبدو المخرج شيئاً مثل هذا:
بدء تصدير =التصدير=…
من أين يأتي جميع المستخدمين الجدد؟
تم حفظ التصدير في =التصدير=-export-2021-08-27-015437.jsonتم الانتهاء
نقل ملف التصدير
يحتاج ملف .json المُصدَّر إلى نقله من داخل حاوية التطبيق حيث قمت بالتصدير إلى داخل حاوية النسخة المستقبلة. يتطلب هذا بضع خطوات.
نسخه إلى “الخارج”
اخرج من الحاوية إذا لم تكن قد فعلت ذلك بالفعل
exit
يجب أن يكون لديك الآن موجه مثل هذا:
root@yourserver:/var/discourse
استخدم docker لنسخ الملف خارج الحاوية (لا أعتقد أنه يمكن نقله)
docker cp app:/var/www/discourse/=FileName= .
نقله إلى النسخة الأخرى
هذا يتجاوز نطاق هذا الدليل، لكن هذا قد يساعدك في الوصول إلى هناك:
نسخه إلى الحاوية في النسخة المستقبلة
قم بالاتصال عبر SSH بنسختك المستقبلة بصلاحيات الجذر وانتقل إلى دليل Discourse:
cd /var/discourse
استخدم docker مرة أخرى لنسخ الملف إلى الحاوية الأخرى
docker cp =FileName= app:/var/www/discourse
استيراد المحتوى
ادخل إلى الحاوية في النسخة المستقبلة:
./launcher enter app
قم بتشغيل سكريبت الاستيراد
discourse import_=Export= =FileName=
تم!
قد تحتاج إلى ترتيب بعض الأمور الباقية، لكن من المفترض أن يكون كل شيء قد انتهى.
نصائح متقدمة
مكتبة Ruby المفقودة
عند القيام باستيراد فئة معقدة، كانت نسختي تفتقر إلى مكتبة ‘Listen’ الخاصة بـ Ruby.
تم حل هذه المشكلة بالقيام بما يلي: (باستخدام مستخدم Discourse داخل الحاوية)
./launcher enter app
su discourse
bundle config --delete without
bundle config --delete with
bundle install
exit
exit
هذا أعطل وحدة تحكم rails، مما استلزم إعادة البناء بعدها
./launcher rebuild app
متعدد المواقع
في بيئة متعددة المواقع، استخدم متغير البيئة RAILS_DB.
RAILS_DB=xxxmoves discourse export_=Export= =ID=
RAILS_DB=dancerehab discourse import_=Export= =FileName=
يرجى الإبلاغ عن الأخطاء في فئة #contribute:bug، وطلب التحسينات في فئة Contribute > Feature.
مواضيع ذات صلة
آخر مراجعة من قبل @SaraDev في 2022-07-13T00:00:00Z