هل تحتاج إلى نقل بعض العناصر من مثيل Discourse إلى آخر؟
توجد أداة سطر أوامر لتصدير موضوع أو مجموعة مواضيع أو فئة كاملة، وأداة أخرى لاستيرادها في الطرف الآخر.
تصدير/استيراد الموضوع
- موضوع واحد أو أكثر وردودهما
- المستخدمون الذين نشروا في الموضوع
تصدير/استيراد الفئة
- الفئة وجميع فئاتها الفرعية
- إعدادات الأمان الخاصة بها
- المجموعات المخصصة المذكورة في إعدادات الأمان
إذا كانت أي من المجموعات ممكّنة لـ “طلبات العضوية”، فسيؤدي ذلك إلى تعطل. قم بإيقاف تشغيل هذا قبل التصدير
- جميع المواضيع والمنشورات في الفئة والفئات الفرعية
- جميع المستخدمين الذين نشروا، وتعيينهم للمجموعات
البدء: تحديد المعرفات (IDs)
أولاً، حدد معرف (=Export=) أو معرفات (=Export=) التي ترغب في تصديرها. ستجد هذا في نهاية عنوان 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
معرف (ID) الفئة أو الموضوع
مواضيع متعددة
يمكنك تحديد أكثر من موضوع واحد عن طريق إضافة معرفات مفصولة بمسافة؛ يعمل هذا في الحقل أعلاه (لا أعتقد أن هذا يعمل للفئات):
53797 200943 124096
تشغيل برنامج التصدير النصي (Export Script)
يمكن تشغيل الأداة كمستخدم جذر (root) داخل الحاوية:
cd /var/discourse
./launcher enter app
قم بتشغيل هذا الأمر:
discourse export_=Export= =ID=
يجب أن يبدو الإخراج شيئًا كهذا:
بدء تصدير =Export=…
من أين يأتي جميع المستخدمين الجدد؟
تم حفظ التصدير في =Export=-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
قم بتشغيل برنامج الاستيراد النصي (import script)
discourse import_=Export= =FileName=
تم الانتهاء!
قد تحتاج إلى ترتيب بعض الأمور العالقة، ولكن نأمل أن يكون كل شيء قد تم.
نصائح متقدمة
Gem مفقود في Ruby
عند إجراء تصدير فئة معقد، كانت الحاوية الخاصة بي تفتقد Ruby ‘Listen’.
تم حل هذا عن طريق القيام بما يلي: (باستخدام مستخدم Discourse داخل الحاوية)
./launcher enter app
su discourse
bundle config --delete without
bundle config --delete with
bundle install
exit
exit
أدى هذا إلى كسر console الخاص بـ rails، مما استلزم إعادة بناء بعد ذلك
./launcher rebuild app
بيئة متعددة المواقع (Multisite)
في بيئة متعددة المواقع، استخدم متغير البيئة RAILS_DB.
RAILS_DB=xxxmoves discourse export_=Export= =ID=
RAILS_DB=dancerehab discourse import_=Export= =FileName=
يرجى الإبلاغ عن الأخطاء في فئة #bug، وطلب التحسينات في فئة #feature.
مواضيع ذات صلة
آخر مراجعة بواسطة @SaraDev في 2022-07-13T00:00:00Z