هجرة كبيرة لمنتديات Drupal، أخطاء وقيود المستورد

حسنًا، يبدو أن هذا عاد ليؤذيني. نظرًا لأن الدالة postprocess_posts تستبدل الروابط الداخلية القديمة بعنوان URL الجديد لـ Discourse، فقد قمت بإنشاء استثناء في الكود للروابط https://web.archive.org/web/20230101093741/https://MyOldForum.com/node/98765 التي أنشأها المستورد الخاص بي لاستطلاعات Drupal القديمة في Wayback Machine. ولكن يبدو أن شيئًا ما قد سار بشكل خاطئ، لأنني لاحظت للتو في موقع الترحيل الإنتاجي أن الروابط انتهت بـ https://web.archive.org/web/20230101093741/https://MyOldForum.com/t/-/12345.

لذا، الآن بعد أن لم أعد في سياق حاوية ترحيل، هل لا يزال الحقل المخصص مع عقدة Drupal الأصلية nid متاحًا في جدول مواضيع Discourse؟ إذا كان الأمر كذلك، فسيبدو من الممكن إجراء استبدال للسلسلة في وحدة تحكم Rails على جميع المواضيع مع المنشور الأول الذي يحتوي على View this poll on the Wayback Machine ثم استبدال
https://web.archive.org/web/20230101093741/https://MyOldForum.com/t/-/[01234567890]*
بـ
https://web.archive.org/web/20230101093741/http://MyOldForum.com/node/$original_nid

إليك دالة استيراد الاستطلاع الأصلية الخاصة بي:

    def import_poll_topics
    puts '', "importing poll topics"

    polls = mysql_query(<<-SQL
      SELECT n.nid nid, n.title title, n.uid uid, n.created created, n.sticky sticky, taxonomy_index.tid tid, node_counter.totalcount views
        FROM node n
        LEFT JOIN taxonomy_index ON n.nid = taxonomy_index.nid
        LEFT JOIN node_counter ON n.nid = node_counter.nid
       WHERE n.type = 'poll'
         AND n.status = 1
    SQL
    ).to_a

    create_posts(polls) do |topic|
      {
        id: "nid:#{topic['nid']}",
        user_id: user_id_from_imported_user_id(topic['uid']) || -1,
        category: category_id_from_imported_category_id(topic['tid']),
        # Use TEMPmyoldforum.com or else postprocess_posts() will try to convert the Wayback Machine /node/YYY link
        raw: "### View this poll on the Wayback Machine:\n**https://web.archive.org/web/20230101093741/http://TEMPmyoldforum.com/node/#{topic['nid']}**",
        created_at: Time.zone.at(topic['created']),
        pinned_at: topic['sticky'].to_i == 1 ? Time.zone.at(topic['created']) : nil,
        title: topic['title'].try(:strip),
        views: topic['views'],
        custom_fields: { import_id: "nid:#{topic['nid']}" }
      }
    end
  end