حسنًا، يبدو أن هذا عاد ليؤذيني. نظرًا لأن الدالة 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