Revisiter ce vieux sujet, car aucune des réponses n’est 100% correcte.
La tâche rake rake destroy:private_messages ne supprime pas définitivement tous les messages privés, elle les supprime logiquement. Ils peuvent toujours être vus par un administrateur et ils peuvent être récupérés.
Le code Rails Topic.where(archetype: 'private_message').where("user_id > 0").destroy_all détruit les sujets, mais pas les messages réels. Ils sont toujours dans la base de données et peuvent être consultés en utilisant par exemple le plugin d’exploration de données.
Ce code supprimera définitivement tous les messages et sujets de messages privés :
attention : couteau bien aiguisé ici !
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
(et pour filtrer cela sur les sujets avec 100 réponses ou plus, vous devez étendre le Topic.where avec where("posts_count > 100") sur les deux lignes)