ご興味をお持ちいただきありがとうございます、@pfaffman!
数ヶ月前に作成され、approved=False、active=False で、last_seen_at がないユーザーレコードがありますが、削除されていません。
last_seen_at が 7 日以上(数ヶ月前)で、ビューが 0 のユーザーレコードがありますが、削除されていません。
その猶予期間フラグで使用されている基準が何であれ、これらのレコードは選択されていません。
使用されている正確なクエリを投稿していただけますか?そうすれば、他にどのような要因が関わっているのか理解できます。
いいえ、データベースを直接見ると、各基準に一致するユーザーレコードがありますが、すべてに一致するものはありません。ユーザーテーブルはデータベース内で一貫性がないようです。トピック入力数や投稿閲覧数 がゼロでないレコードがありますが、ビューは 0 です。トピック入力数=0 および投稿閲覧数=0 のレコードがありますが、ビューはゼロではありません。
覚えておくべき重要な点は、このサイトが開発されていたとき、設定は最適ではなく、人間とボットが登録していました。「OR」句は、これらすべてを取得するようです。サイトが(うまくいけば)健全な設定で安定した今、新しい登録が同じ異常を引き起こすとは予想していません。
さまざまな基準でスクリプトを何度も実行する予定です。最初にレコードをクエリし、環境外で、次にサイレンススクリプトを実行して、本当に必要なレコードのみを対象とします。数週間後に最終実行を行い、サイレンスされたレコード(実際に戻ってきた人は誰でもフラグが削除されます)のみを選択し、すべて削除します。
UserDestroyer.new(admin_user).destroy(user, reassign_to: archive_user)
私の全体的な質問は、v0.0.2 スクリプトが、選択、ログ記録、およびサイレンスのアプローチで、Discourse システムに適しているかどうかということです。このようなループで他に何か行うべきことがあるかどうかはわかりません。自分でスクリプトを作成して実行したことはないので、これは初心者的なミスがないか確認するためのリクエストです。
よろしくお願いします!