ترحيل محتوى Xenforo محدد

مرحباً مجتمع Discourse،

لدي الكثير من المحتوى من قاعدة بيانات xenforo قديمة أرغب في استيرادها، ولكن هناك بعض الأشياء التي لا أرغب في القيام بها:

من الناحية المثالية، أرغب فقط في استيراد المواضيع والمنشور الأول من كل موضوع، وأرغب أيضًا في إعادة تعيين كاتب الموضوع إلى حساب منتدى/مستخدم مختلف في Discourse قمت بإنشائه بالفعل. هل هذا ممكن بطريقة سهلة بما فيه الكفاية؟

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

فقط قم بتعديل استعلام SQL في البرنامج النصي للاستيراد

        SELECT p.post_id id,
               t.thread_id topic_id,
               #{@prefix_as_category ? "t.prefix_id" : "t.node_id"} category_id,
               t.title title,
               t.first_post_id first_post_id,
               t.view_count,
               p.user_id user_id,
               p.message raw,
               p.post_date created_at
        FROM #{TABLE_PREFIX}post p,
             #{TABLE_PREFIX}thread t
        WHERE p.thread_id = t.thread_id
        AND p.message_state = 'visible'
        AND t.discussion_state = 'visible'
        ORDER BY p.post_date
        LIMIT #{BATCH_SIZE}" # needs OFFSET

أضف AND p.post_id = t.first_post_id إلى جملة WHERE

غيّر

mapped[:user_id] = user_id_from_imported_user_id(m["user_id"]) || -1

إلى

mapped[:user_id] = xxx

حيث xxx هو معرف مستخدم Discourse الذي تريد تعيين المواضيع إليه.

3 إعجابات

@RGJ شكرا على الرد السريع، هل يمكنك أن تعرض لي جملة SQL مع التعديل الصحيح، لقد حاولت تضمين AND p.post_id = t.first_post_id في جملة WHERE ولكنني أحصل على أخطاء في التحقق من صحة SQL في الجملة
أوه وأين هذا السكربت المستورد؟! شكرا على التلقين، أقدر ذلك

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

أمضيت ساعات في المحاولة ولم أصل إلى أي مكان حقًا، هل لا يوجد دعم مدفوع لـ Discourse لهذا النوع من الأشياء؟

إعجابَين (2)

يمكنك على الأرجح إنشاء موضوع في Marketplace.

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

إذًا، أحصل على هذا الخطأ:

cannot load such file -- /var/discourse/config/environment

وفي السطر 16 من base.rb يوجد:

require_relative "../../config/environment"

لا يذكر أي شيء في أي برنامج تعليمي للاستيراد/الترحيل حقيقة أن هذا غير موجود.