نقل المواضيع من مثيل Discourse إلى آخر

تريد نقل بعض البيانات من نسخة من Discourse إلى أخرى؟

يوجد أداة سطر أوامر لتصدير موضوع، أو مجموعة من المواضيع، أو فئة كاملة، وأداة أخرى لاستيرادها في الجهة الأخرى.

تصدير/استيراد المواضيع

  • موضوع واحد أو أكثر وردوده
  • المستخدمين الذين شاركوا في الموضوع

تصدير/استيراد الفئات

  • الفئة وجميع الفئات الفرعية التابعة لها
  • إعدادات الأمان الخاصة بها
  • المجموعات المخصصة المذكورة في إعدادات الأمان
    • :warning: إذا كان أي من المجموعات لديه خيار “طلبات العضوية” مفعلاً، فسيحدث تعطل. قم بإيقاف هذا الخيار قبل عملية التصدير
  • جميع المواضيع والمشاركات داخل الفئة والفئات الفرعية
  • جميع المستخدمين الذين شاركوا، ويتم تعيينهم إلى المجموعات

ابدأ: تحديد المعرفات

أولاً، حدد المعرف(ات) لـ =التصدير= الذي ترغب في تصديره. ستجده في نهاية عنوان 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=

:cake: تم!

قد تحتاج إلى ترتيب بعض الأمور الباقية، لكن من المفترض أن يكون كل شيء قد انتهى.

نصائح متقدمة

مكتبة 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

45 إعجابًا
UI: Topic and Category Export/Import
CLI command to migrate a single category
Moving topics between sites?
Category/Topic export fails with error "database "discourse_development" does not exist"
Easiest way to export a single topic?
Saving a Conversation
Migrate user custom fields to another instance
Error Importing Categories from a Discourse Instance to Another
How to export user data from a category on a hosted site
Import CSV User Activity from one Discourse to Another
How use API to convert topic in discourse1.com to discourse2.com
Can sub-forums of the same instance split up and move to new independent servers (or discourse instances)?
Help migrating category from one instance to another without admin on the source instance
I wonder how to add hundreds of users into a group? Is there any api?
Adding default sets of topics, categories and users to a new Discourse
Downloading Content
Can we combine 2 separate discourse sites?
Tracking and resolving a schema drift cause
Merge two Discourse forums into one
Moving topics from a forum on one website to a forum on another website
Transfer topics between forums?
Forum Aquisition
Transfering inbox group messages to another instance?
Transfering inbox group messages to another instance?
Imported categories are not in parent category
Copy categories / topics
How to download Comments and Topics
Selective backups skipping settings and config
Test driving admin/moderation features
Add backup to existing Discourse instance
Merging two Discourse forums
Migrating vBulletin onto existing and live Discourse instance
Migrate topics from one discourse instance to another?
A system where people have to start at lesson 1, and cannot see the other lessons?
How to divide my community into 2 parts