Excluir posts excluídos permanentemente em massa?

Para excluir as postagens antigas em nosso fórum, usei o seguinte. É o resultado da combinação de The proper way to completely delete hundred of topics via rails? com as sugestões do @RGJ.

No final, optei por fazer isso porque realmente queria remover os dados do banco de dados para proteger a privacidade dos usuários. Reescrever o texto para “Esta postagem foi excluída” ainda deixa o histórico de edições intacto e relativamente acessível, o que não é suficiente.

Como tínhamos 20.000 tópicos para destruir, o processo levou um tempo!

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

Como isso deixou muitas postagens órfãs, precisei seguir com:

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