لقد قضيت اليوم بأكمله في محاولة نقل بيانات MyBB الخاصة بي إلى Discourse باستخدام عدة طرق مختلفة، بما في ذلك الطريقة الرسمية و الطرق البديلة. على الرغم من بذل قصارى جهدي، ما زلت أواجه صعوبة في جعل كل شيء يعمل. لقد واجهت مشاكل في تنسيق البيانات، والحقول المفقودة، وعقبات أخرى مختلفة.
هل يجب أن يكون الأمر بهذه الصعوبة حقًا للأشخاص لـ دمج MyBB في Discourse؟ يبدو أنه يجب أن تكون هناك طريقة أبسط بكثير لتحقيق ذلك، خاصة وأنني قمت بالفعل بتصدير البيانات من MyBB (المستخدمين، المواضيع، المشاركات، والفئات) إلى ملفات CSV. ومع ذلك، تبدو عملية الاستيراد معقدة للغاية، وفي بعض الأحيان، قديمة.
هل واجه أي شخص آخر تحديات مماثلة؟ هل هناك أي طرق مبسطة حالية أو أدوات يمكنني استخدامها لترحيل منتداي بسلاسة من MyBB إلى Discourse دون مواجهة هذه المشاكل؟
سأكون ممتنًا جدًا لأي توجيهات أو نصوص برمجية أو عمليات خطوة بخطوة نجحت مع الآخرين.
ما هي الطريقة التي استخدمتها؟ ما هي الأخطاء التي واجهتها؟
يقرأ البرنامج النصي للاستيراد قاعدة بيانات mysql. لا يمكنك استخدام ملفات CSV. ما الذي اقترح أنك تستطيع استخدام ملفات CSV؟
إنه يعمل مثل البرامج النصية الأخرى للاستيراد. وبداية الملف تتضمن هذا:
لذلك تحتاج إلى قاعدة بيانات mysql يمكن للجهاز الذي يقوم بتشغيل البرنامج النصي الوصول إليها، وتحديد متغيرات البيئة هذه وتشغيل البرنامج النصي كما هو مذكور.
أتفهم أن الطريقة “الرسمية” تعتمد على الوصول إلى قاعدة بيانات MySQL واستخدام البرنامج النصي mybb.rb مع متغيرات البيئة - ونعم، لقد جربت ذلك. حاولت أيضًا إعداد بيئة تطوير Discourse محلية كاملة كما توصي بها أدلة الاستيراد، وخططت لنقل البيانات إلى بيئة الإنتاج بعد الاستيراد. لكن الواقع هو أن كل برنامج تعليمي ومثال تقريبًا وجدته في فئة “الترحيل إلى Discourse” إما قديم أو مليء بأشخاص يواجهون أخطاء أيضًا مع مستورد MyBB.
البرنامج النصي نفسه هش. لم يصمد أمام اختبار الزمن، ويتعطل بسبب اختلافات بسيطة في المخطط أو حالات حافة. تفترض معظم الأدلة أنك على دراية بـ Ruby و Rails والتفاصيل الداخلية لقاعدة كود Discourse - وهو ما لا يعرفه العديد من مسؤولي المنتديات. وحتى عندما حاولت تبسيط الأمور عن طريق التصدير إلى CSV، كان الأمر يتعلق بمحاولة إعداد البيانات يدويًا لأن الأدوات المقدمة لم تكن تعمل.
عندما قلت * “إنها تعمل جميعًا بنفس الطريقة تقريبًا” * - بالتأكيد، ولكن هذه هي المشكلة. الكثير منها لا يعمل بشكل جيد في عام 2025 دون تصحيحات وتصحيح أخطاء وتخمين كبير. لا يكافح الناس لأنهم لم يقرأوا المستندات - إنهم يكافحون لأن النظام البيئي للاستيراد عالق في عقلية تركز على المطورين.
في هذه المرحلة، قررت ببساطة تحويل قاعدة بيانات MyBB SQL الخاصة بي إلى نسخة احتياطية عاملة من Discourse بتنسيق .tar.gz يمكنني تحميلها واستعادتها من خلال لوحة الإدارة. لا توجد برامج نصية للاستيراد، ولا أخطاء Ruby، فقط طريقة نظيفة ومباشرة تعمل.
وبصراحة، سأقوم بإنشاء أداة Python تتيح للأشخاص سحب وإسقاط ملف MyBB SQL الخاص بهم وتصديره إلى نسخة احتياطية جاهزة لـ Discourse. لقد أظهرت لي هذه العملية برمتها مدى الحاجة الماسة إلى مسار استيراد حديث وسهل الاستخدام. لا ينبغي للمستخدمين أن يمروا بهذا القدر من الألم لمجرد ترحيل مجتمعهم.
أقدر المساعدة على أي حال - أعرف أنك تحاول فقط التوضيح، ولست ألوم أحدًا على وجه التحديد. لكن تجربة الاستيراد بأكملها تحتاج بالتأكيد إلى تحديث.
تمت كتابة Discourse بلغة Ruby، لذلك من الضروري كتابة نص برمجي يتفاعل مع الأجزاء الداخلية لـ Discourse. الاستيراد هو اقتراح يتمحور حول المطور.
كل نص برمجي مليء بالحالات الطرفية. لقد قمت بأكثر من مائة استيراد. كل واحد منها تطلب تعديلات لأسباب مختلفة.
احتمالية أن تتمكن من كتابة نص برمجي للاستيراد لـ Discourse بلغة Python قريبة جدًا من الصفر. إذا فعلت ذلك، فمن المحتمل ألا يعمل مع أي شخص آخر. وبمجرد الانتهاء من الترحيل الخاص بك، فمن غير المرجح أن تحتفظ بالكود للتغييرات المستقبلية في mybb و Discourse.