¿Eliminar publicaciones eliminadas permanentemente en bloque?

Para eliminar las publicaciones antiguas en nuestro foro, utilicé lo siguiente. Es el resultado de combinar The proper way to completely delete hundred of topics via rails? y las sugerencias de @RGJ.

Al final, opté por hacerlo así, ya que realmente quería eliminar los datos de la base de datos para proteger la privacidad de los usuarios. Reescribir el texto como “Esta publicación ha sido eliminada” aún deja el historial de ediciones intacto y relativamente accesible, por lo que no es suficiente.

Como teníamos 20,000 temas que eliminar, ¡llevó un tiempo!

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

Como esto dejó muchas publicaciones huérfanas, tuve que seguir con:

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