Revisando este antiguo tema, ya que ninguna de las respuestas es 100% correcta.
La tarea rake rake destroy:private_messages no elimina permanentemente todos los mensajes privados, los elimina lógicamente. Todavía pueden ser vistos por un administrador y pueden ser recuperados.
El código de Rails Topic.where(archetype: 'private_message').where("user_id > 0").destroy_all destruye los temas, pero no los mensajes reales. Todavía están en la base de datos y se pueden ver usando, por ejemplo, el plugin explorador de datos.
Este código eliminará permanentemente todas las publicaciones y temas de mensajes privados:
advertencia: ¡cuchillo afilado aquí!
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
(y para filtrar esto en temas con 100 respuestas o más, necesitas extender Topic.where con where("posts_count > 100") en ambas líneas)