Eliminare definitivamente i post eliminati in blocco?

Per eliminare i vecchi post del nostro forum, ho utilizzato questo metodo, che combina le indicazioni di The proper way to completely delete hundred of topics via rails? con i suggerimenti di @RGJ.

Ho scelto di procedere in questo modo perché volevo davvero rimuovere i dati dal database per proteggere la privacy degli utenti. Sostituire il testo con “Questo post è stato eliminato” avrebbe lasciato intatto lo storico delle modifiche, rendendolo ancora relativamente accessibile, quindi non era sufficiente.

Visto che dovevamo eliminare 20.000 argomenti, ci è voluto un po’ di tempo!

Topic.with_deleted.where("deleted_at < '2021-08-28'").limit(1000).destroy_all

Poiché questo ha lasciato molti post orfani, ho dovuto procedere con:

Post.where('topic_id not in (select id from topics)').limit(1000).destroy_all