Ritornando su questo vecchio argomento, dato che nessuna delle risposte è corretta al 100%.
Il rake task rake destroy:private_messages non elimina definitivamente tutti i messaggi privati, li elimina in modo “soft”. Possono ancora essere visti da un amministratore e possono essere recuperati.
Il codice Rails Topic.where(archetype: 'private_message').where(\"user_id \u003e 0\").destroy_all elimina gli argomenti, ma non i messaggi effettivi. Sono ancora nel database e possono essere visualizzati utilizzando, ad esempio, il plugin data explorer.
Questo codice eliminerà definitivamente tutti i post e gli argomenti dei messaggi privati:
attenzione: coltello affilato qui!
Post.where(topic_id: Topic.where(archetype: 'private_message').where(\"user_id \u003e 0\")).destroy_all
Topic.where(archetype: 'private_message').where(\"user_id \u003e 0\").destroy_all
(e per filtrare questo su argomenti con 100 o più risposte è necessario estendere Topic.where con where(\"posts_count \u003e 100\") in entrambe le righe)