Discourseの新トピックへのリダイレクト一括インポート

皆さん、こんにちは。

最近、古いカスタムプラットフォームからDiscourseへのサイト移行に成功しました。しかし、現在、パーマリンク/リダイレクトを新しいDiscourseトピックにインポートするという課題に直面しています。Discourseで作成されたすべての投稿のIDを持っており、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 にリダイレクトするパーマリンク正規化を作成します。

import_scriptsgrep して、パーマリンクとパーマリンク正規化を設定する他のインポートスクリプトを見つけることができます。

「いいね!」 1

ジェイさん、ご返信ありがとうございます。移行のためにインポートスクリプトを使用する代わりに、カスタム構造のためAPI統合を選択しました。APIを使用して投稿をインポートするPythonスクリプトを開発し、各トピックの新しいトピックIDを正常に取得しました。約6,000ページにわたって古いURLを新しいトピックID/URLとともにインポートしたにもかかわらず、マッピングは期待どおりに機能していません。何が欠けている可能性があるか、またこの問題をどのように修正できるかについて、アドバイスをいただけますでしょうか。ご指導いただければ幸いです。