¿Eliminar publicaciones eliminadas permanentemente en bloque?

Excelente, me alegra saber que eso te funcionó. Así que, para combinar las respuestas, se puede usar lo siguiente en la consola de Rails para destruir todos los temas que fueron eliminados hace más de 90 días, repitiendo tantas veces como sea necesario si hay más de 1000 temas:

Topic.with_deleted.where(deleted_at: ...90.days.ago).limit(1000).destroy_all

Una vez que eso se complete, se puede usar lo siguiente para destruir todas las publicaciones que han quedado huérfanas de temas destruidos:

Post.find_by_sql("select * from posts where topic_id not in (select id from topics)").each { |p| p.destroy }

Vale la pena señalar que los comandos anteriores no destruirán las publicaciones eliminadas, solo los temas eliminados y sus publicaciones huérfanas. Para destruir también las publicaciones eliminadas de más de 90 días, usa lo siguiente, repitiendo nuevamente según sea necesario:

Post.with_deleted.where(deleted_at: ...90.days.ago).limit(1000).destroy_all

P.D. Por curiosidad, ¿probaste destroy_all sin limit(1000) y tuviste problemas o no lo intentaste sin el límite?

8 Me gusta