インポートした投稿を既読にする方法

現在、独自に開発されたフォーラムから Discourse へのデータ移行作業を行っています。レガシーフォーラムには約 3 万件のトピックがあり、理想的にはインポート処理中にそれらすべてを既読にしたいと考えています。私の理解が正しければ、関連するテーブルは post_timings です。

ご質問ですが、各トピックの最新の投稿に対して、全ユーザーの post_timings にエントリを追加するだけでは十分でしょうか?それとも、約 70 万件の投稿 × 2,000 人のユーザーに対して、すべての投稿にエントリを追加する必要がありますか?

私の具体的なユースケースについて少し補足します。移行元となるレガシーなフォーラムソフトウェアは機能は限られていますがシンプルで、会員層も年齢や技術レベルが幅広く分布しています。移行の準備を進める間、会員が試せるようにDiscourseのインスタンスを立ち上げましたが、いくつかのコメントで「非常に圧倒される」という声が上がっています。

これは単なる学習曲線の問題だと考えています。私もIT専門家ですが、少し同じように感じています。人々がこの変化に慣れれば、Discourseがレガシーソフトウェアよりも明確に優れていると実感するようになるでしょう。

懸念しているのは、その段階に達する前に会員を失ってしまうことです。もしインポートされたスレッドに誰かが初めて返信した際、ユーザーがそのトピックの最初の投稿へ送り返されてしまうと、使いやすさに大きな悪影響を与えます。そのため、一部の会員が諦めてしまう可能性もあると考えています。そこで、インポートされたすべての投稿を既読扱いとし、ユーザーがすぐに新しいコンテンツへアクセスできるようにすることを強く望んでいます。

投稿前にアーカイブを検索しましたが、この特定の質問に答える情報は見つけることができませんでした。

「いいね!」 1

これには移行中に、もっと簡単な方法があるかもしれません。もしかしたら @gerhard さんならご存知かもしれませんね?

「いいね!」 1

@gerhard さん、インポートされたトピックを既読にする方法に関する情報はありますか?

topic_users テーブルと post_timings テーブルにレコードを作成する必要があります。TopicUser モデルや PostTiming モデルのメソッドを使用するか、より効率的に SQL を使用して行うことができます。

以下は、投稿を著者にとって既読としてマークするベースのインポートスクリプトからの例です。あなたのユースケースに合わせて適応させる必要があります。

「いいね!」 2

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.