دمج Discourse و SMF

مرحباً!

لدي السؤال التالي:
منذ عام 2017 لدي منتدى SMF مع حوالي 4000 مشاركة الآن.
في العام الماضي، كان لدي بالتوازي منتدى Discourse مع حوالي 1000 مشاركة، ولكنه غير متاح حاليًا عبر الإنترنت، لأنني عدت إلى SMF في ديسمبر 2021.
حسنًا، لم أعد أحب SMF، لذلك أود ترحيله إلى Discourse، ولكني أود أيضًا الاحتفاظ بـ 1000 مشاركة من منتدى Discourse.
لدي نسخة احتياطية من Discourse، ومن SMF لا توجد مشكلة في عمل نسخة احتياطية.

ترحيل SMF إلى Discourse لا ينبغي أن يكون مشكلة، على الرغم من أنني لم أجرب ذلك من قبل.
يجب أن أعترف أن كلاهما لديه فئات متشابهة، ولكن هناك اختلافات.

هل من الممكن دمج كلا المنتديين في واحد؟
إذا كان الأمر كذلك، فما هي أفضل طريقة للقيام بذلك؟

من SMF، أحتاج فقط إلى المستخدمين، وهم نفس المستخدمين في كلا المنتديين (أكثر أو أقل)، والمشاركات. من حيث المبدأ، يمكن استيراد جميع المشاركات من منتدى SMF إلى فئة منفصلة، وسأقوم بنقلها بنفسي إلى الفئات الصحيحة (أو تركها هناك كنوع من الأرشيف).

سيكون منهجي على النحو التالي:

  1. أقوم بعمل نسخة احتياطية من SMF الحالي وأستوردها إلى SMF ثانٍ وأقوم بنقل جميع الموضوعات والمشاركات هناك إلى فئة واحدة، وأقوم بعمل نسخة احتياطية أخرى لاستيرادها إلى Discourse.
  2. أقوم بإعادة تشغيل منتدى Discourse “القديم” عبر الإنترنت. (مع أو بدون 1000 مشاركة؟).
  3. أقوم باستيراد النسخة الاحتياطية من SMF.

هنا لدي سؤال حول ما إذا كان هذا يعمل على الإطلاق، لأن الموضوعات والمشاركات لها معرفات وطوابع زمنية من SMF وهذه مرتبطة بالمستخدمين وما إلى ذلك.

بصراحة، ليس لدي فكرة عن كيفية المتابعة وما إذا كان ذلك ممكنًا على الإطلاق.
هل النص البرمجي مُكيف بالفعل لـ SMF 2.1.x؟

أي مساعدة ستكون موضع تقدير!

لست متأكدًا مما إذا كان Discourse يدعم النسخ الاحتياطي الأصلي من SMF. أعرف أن فريق Discourse الرسمي يمكنه المساعدة في عمليات الترحيل، لكنني لا أعرف التكلفة. في الماضي، استخدمت واجهة برمجة تطبيقات Discourse لترحيل كميات كبيرة من بيانات المنتدى. لقد أنشأت فئاتي على منتدى Discourse. بمجرد الانتهاء، قمت بإنشاء نص برمجي بلغة Python لكشط منتدىي القديم وزرع المنتدى الجديد بالمواضيع والمستخدمين وما إلى ذلك.

يوجد في المستندات تعليمات حول كيفية الترحيل من SMF إلى Discourse.

https://meta.discourse.org/docs?topic=90314

سيكون من الجيد وجود نص برمجي لكشط البيانات من SMF واستيرادها إلى Discourse، لو كنت أستطيع برمجة مثل هذه الأشياء. :wink:

إعجابَين (2)

آه، حسناً. لم أكن أعرف أن لديهم وثائق رسمية حول كيفية الترحيل من SMF2. هل منتدى الخاص بك هو منتدى SMF2 أم SMF1؟

نعم ولا، إنه SMF 2.1.x، وقد تغير SMF كثيرًا من 2.0.x إلى 2.1.x

ولا يزال لدي مشكلة في دمج كلا المنتديين.

إعجاب واحد (1)

حسناً. شكراً على هذه المعلومات :slight_smile:
في أي خطوة من دليل الترحيل تواجه مشكلة؟

إعجاب واحد (1)

انظر أيضًا: Merge two Discourse sites into one

مع التحفظ على أنني لم أقم بعمليات ترحيل بنفسي، فإن منهجي سيكون:

  • ترحيل بيانات SMF الخاصة بك إلى مثيل جديد
  • دمج مثيلي Discourse باستخدام الدليل أعلاه

حسنًا، كلنا لدينا مطارقنا، لكنني وجدت أن البرنامج النصي لدمج مواقع Discourse يفتقد إلى العديد من الحالات الاستثنائية (لا أستطيع تذكرها بالضبط الآن). وبعد ذلك لديك انتقالان يجب القيام بهما.

من المحتمل أن أقوم بتشغيل البرنامج النصي SMF فوق موقع Discourse الحالي. عندما أفعل ذلك، قمت بإجراء تعديلات للقيام بأشياء مثل رؤية دمج الفئات ومواءمة المستخدمين بين المواقع. إذا كنت تعرف القليل عن البرمجة، فإن البرامج النصية سهلة الفهم بشكل عام، حتى لو كنت لا تعرف Ruby.

إعجابَين (2)

حسناً، لم أبدأ بعد.
لكن، كان سؤالي 1. هل يعمل هذا السكربت مع SMF2.1، و 2. هل من الممكن دمج SMF في نسخة Discourse موجودة.

لقد فاتني ذلك تماماً. شكراً على إجابتك. أعتقد أن هذه هي الطريقة التي يجب أن تعمل بها الأمور.

@pfaffman
لا أحتاج كل شيء من SMF، فقط المشاركات والمواضيع والمستخدمين.

ربما سأضطر إلى التعديل لجعله يعمل.

هذا هو كل ما يتم استيراده تقريبًا. من المحتمل أن يكون استيراد الفئات أسهل من عدمه.

نعم. ولا توجد طريقة لمعرفة حجم العمل حتى تجربه.

أعتقد أنني سأقوم بالخطوات التالية:

  1. سآخذ SMF الخاص بي وأقوم بنقل كل موضوع (مع المشاركات) إلى فئة واحدة ثم أقوم بعمل نسخة احتياطية من قاعدة البيانات.
  2. تثبيت Discourse جديد واستيراد النسخة الاحتياطية من SMF (آمل أن يعمل نص الاستيراد مع SMF 2.1).
  3. حذف Discourse وإعادة تثبيته ثم تحميل النسخة الاحتياطية من Discourse الخاص بي مع الإعدادات والمشاركات.
  4. دمج منتديي Discourse في منتدي واحد باستخدام الدليل الذي ربطه @supermathie.

آمل أن ينجح الأمر، وإلا سأحتاج إلى دفع لشخص ما ليقوم بذلك نيابة عني.