複数のトピックの更新日時をリセットする方法

複数のトピックの更新日時をリセットする方法

ユースケースが何なのかはわかりませんが、Web UI を使っている限り、個別のトピックをバンプした際にそのバンプ日付をリセットするのは容易だと思います。「一括でバンプ日付をリセットする」機能がなぜ必要になるのか、ましてや UI が必要になるほど一般的なニーズがあるのか、私には理解できません。

いずれにせよ、何らかの理由で一括処理が必要な状況に陥ったのであれば、CLI を使って対応可能はずです。

返信ありがとうございます。

RSS のブログやポッドキャストを Discourse に取得するボットを使用しており、フィードが変更されるとトピックが自動的に更新され、トップに移動します。一つずつリセットしなければならないため、一括リセットできればより良いと考えています。

CLI とはどういう意味でしょうか?データベース経由での一括リセットでしょうか?ありがとうございます。

ちょうど今、この機能を探していました。

私のフォーラムで整理や並べ替えをしていたところ、古い投稿が多数トップに浮上してしまいました。そのため、各投稿にアクセスして、再度「バンプ日付」をリセットする必要があります。

https://github.com/discourse/discourse/blob/master/app/models/topic.rb

もし、繰り返しになりますが、私の読み方が正しければ、Topics テーブルには bumped_at フィールドがあり、これは datetime 型で NULL 値を許容しません。その初期の NOT NULL 値は created_at の NOT NULL 値と同じです。私の知る限り、この datetime は Ruby の now が返す値です。

あなたができるだけ正確に以下を特定すれば、クエリを組み立てられる可能性が高いと思います。

  • 直前に何が存在していたか
  • 正確に何を操作したか
  • 何を達成したいか

「大量」とはどれくらいの数を指すのでしょうか?もし一時的な処理であれば、地道に処理を進めた方がよいかもしれません。

(残念ながら、prior_to_bump_date というフィールドはありません :sadpanda:

私もです!

レールコンソールから手動で「bump」の日付をリセットするにはどうすればよいですか?問題のトピックの bumped_atupdated_at に戻すのですか?