この古いトピックを再検討します。回答はどれも100%正確ではありませんでした。
Rakeタスク rake destroy:private_messages は、すべてのプライベートメッセージをハード削除するのではなく、ソフト削除します。管理者はそれらを見ることができ、復旧することも可能です。
Railsコード Topic.where(archetype: 'private_message').where("user_id > 0").destroy_all はトピックを削除しますが、実際のメッセージは削除しません。それらはデータベースに残っており、例えばデータエクスプローラープラグインを使用して表示できます。
このコードは、すべてのプライベートメッセージの投稿とトピックを完全に削除します。
警告:ここに鋭利なナイフがあります!
Post.where(topic_id: Topic.where(archetype: 'private_message').where("user_id > 0")).destroy_all
Topic.where(archetype: 'private_message').where("user_id > 0").destroy_all
(そして、100件以上の返信があるトピックにこれをフィルタリングするには、両方の行で Topic.where を where("posts_count > 100") で拡張する必要があります)