استيراد جماعي لإعادة التوجيه إلى مواضيع Discourse جديدة

مرحباً بالجميع،

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

هل يمكن لأي شخص تقديم المشورة بشأن وجود أي طرق أو أدوات متاحة لاستيراد روابط إعادة التوجيه بكفاءة إلى مواضيع Discourse الجديدة؟ ستكون رؤاكم واقتراحاتكم محل تقدير كبير.

شكراً مقدماً!

إذا كان ترحيلك يستند إلى نص برمجي للاستيراد، فستتضمن المواضيع (وربما المشاركات) حقلاً مخصصًا import_id. يمكنك بعد ذلك استخدام تلك الحقول المخصصة، والروابط الدائمة، و SiteSetting.permalink_normalizations لإنشاء عمليات إعادة توجيه.

يمكنك الاختبار في Rails بشيء مثل

tcfs=TopicCustomField.where(name: 'import_id')
pcfs=PostCustomField.where(name: 'import_id')

إذا لم يكن لديك هؤلاء، فسيكون الأمر صعبًا للغاية.

إذا كان لديك هؤلاء، فيمكنك فعل شيء مثل

tcfs.each do |tcf|
  Permalink.create(url: "imported-topic/#{tcf.value}", topic_id: tcf.topic_id)
end

ثم قم بإنشاء تطبيع للرابط الدائم يعيد توجيه المسار للمواضيع إلى /imported-topic/IMPORTED_ID.

يمكنك استخدام grep في import_scripts للعثور على بعض نصوص الاستيراد البرمجية الأخرى التي تقوم بتعيين الروابط الدائمة وتطبيع الروابط الدائمة.

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

شكراً لك يا جاي على ردك. بدلاً من استخدام البرنامج النصي للاستيراد للترحيل، اخترت التكامل مع واجهة برمجة التطبيقات (API) بسبب الهيكل المخصص. قمت بتطوير برنامج نصي بلغة بايثون لاستيراد المنشورات باستخدام واجهة برمجة التطبيقات، وقد نجحت في جلب معرفات مواضيع جديدة لكل موضوع. على الرغم من استيراد عناوين URL القديمة بمعرفات/عناوين URL مواضيع جديدة عبر ما يقرب من 6 آلاف صفحة، إلا أن أيًا من التعيينات لا تعمل كما هو متوقع. هل يمكنك من فضلك تقديم المشورة بشأن ما قد أكون أفتقده وكيفية تصحيح هذه المشكلة؟ سيكون توجيهك محل تقدير كبير.