古いトピックを整理する

こんにちは。

高校生向けのDiscourseサイトは非常に好評でした。好評すぎたのです。2021年1月に開始して以来、過去2年間で230万件の投稿と290万件の「いいね!」がありました。

コスト削減と、ハッキングなどによる長期的なリスク軽減のため、少し整理したいと考えています。まっさらな状態からやり直すのは大変ですが、トピックURLの末尾に/printを追加するとPDF用の1000コメントページが作成されることが発見されたのは助けになります。例えば、最も古い1年分のトピックを削除するような、クリーンな方法を見つけることができません(そして、そのような方法が存在するとは本当に疑っています)。

何か良い考えはありますか?まっさらな状態からやり直す必要があるのでしょうか、それとも他に選択肢はありますか?

ガブリエル・ジーベン

「いいね!」 2

こんにちは!Discourse がプロジェクトで非常にうまく機能したことを知って嬉しいです :smiley: :+1:

念のため確認ですが、トピックを削除対象とする基準は年齢のみということでしょうか?

インターフェースに組み込まれた機能はありませんが、特定の期日より古いトピックを削除する Rails スクリプトを作成し、手動でトリガーすることは可能です。

Topic.where("created_at.....").destroy_all

括弧内は SQL クエリです。

「いいね!」 1

はい、リンク切れやコンテキストの喪失がなければ。引用は影響を受けないことを願っています。

アップロードもクリーンアップされますか?

「いいね!」 1

引用の内容はそのまま残ります。
削除されたトピックへの内部リンクは、「見つかりません」ページに移動します。

はい、アップロードはデフォルトで2日後に削除されます(他の場所、例えば別のトピックの引用内で使用されていない限り)。**クリーンアップされていないアップロードの猶予期間(時間)**設定を参照してください。

ただし、トピックと投稿はソフト削除されることに注意してください。非表示になりますが、データベースには引き続き保存されます。


追加情報ですが、私が言っていることは100%確実ではありませんが、それに近いです…より詳しいユーザーからの返信を待つのが良いでしょう。 :slight_smile:

「いいね!」 1

今後、チャットを有効にすることを検討してみてはいかがでしょうか。特に削除したい場合は、チャットが主な用途であると推測されます。そうすれば、コンテンツは自動的に削除されます(デフォルトは90日だったと思いますが、おそらく十分でしょう)。

古いコンテンツは重要ではないのですか?もし重要なのであれば、良いコンテンツをどのように保持するつもりですか?カテゴリー別ですか?

Topic.destroyPostDestroyer を呼び出すように見えるので、トピックを削除すれば、望む結果が得られると思います。

本番サーバーで実行する前に、テストサイトをセットアップしてテストを行うことをお勧めします。

あるいは、卒業クラスごとにDiscourseサイトを作成し、時期が来たらシャットダウンするという方法も考えられます。学校全体のコンテンツ用に別のサイトを作成し、認証サーバー(学校全体のDiscourseまたは、学校/地区が使用している認証サーバー)を共有することもできます。あるいは、これは高校生向けであって、高校そのものではないのかもしれません。その場合、この再編成は意味をなさないかもしれません。

「いいね!」 3