Discourse に古いメーリングリストを大量にインポートしました。最初は親スレッドの一部として正しく識別されていなかった複数のスレッドをマージした結果、スレッドの順序が乱れていることに気づきました。日付が古い多くのスレッドメッセージが、日付が古い親スレッドの後に Discourse 上に表示されてしまいます。
スレッドを、最も古い(最初の投稿)から新しい順に日付で並べ替える方法はありますか?
Discourse に古いメーリングリストを大量にインポートしました。最初は親スレッドの一部として正しく識別されていなかった複数のスレッドをマージした結果、スレッドの順序が乱れていることに気づきました。日付が古い多くのスレッドメッセージが、日付が古い親スレッドの後に Discourse 上に表示されてしまいます。
スレッドを、最も古い(最初の投稿)から新しい順に日付で並べ替える方法はありますか?
いいえ。問題は、トピックが投稿 ID の順にソートされていることです。そして、あなたが説明した通り、投稿は本来作成されるべき順序とは異なる順序でインポートされています。残念ながら、適切な解決策は、投稿が正しい順序でインポートされるようにインポート処理を修正することです。ただし、必要なことはデータベースをクリーンアップし、インポートスクリプトを再実行することだけかもしれません。
(あるいは、「投稿順序を気にしない」というような他の「解決策」もあります。それは、誰も読むことのない古いデータであるため、各トピックについて既存の投稿をすべて削除し、正しい順序で再作成するというものです。)
うーん、これらはもう数ヶ月間実施されていますね。削除して再インポートするという解決策は適切だとは思えません。投稿IDの順序を入れ替えられるプラグインを作れないかと考えているのですが……うーん。
ああ、それは残念ですね。何でも可能かもしれませんし、そうかもしれませんが、それはサイト全体のパフォーマンスに永続的に影響を及ぼします。
考えられる方法としては、そのトピックと関連するカスタムフィールドを削除してから、スクリプトを再度実行するという方法があります。本番データで行う前に、ステージングサイトで慎重にテストすることをお勧めします。
投稿 ID の順序が入れ替わっても、それが永続的な影響を与えるとは思いません。別の選択肢として、クエリ時にスレッドを日付順にソートするだけのプラグインを用意するという方法もあるかもしれません…
その通りです。すべての投稿を正しい順序で削除して再作成すれば、問題なく解決します。