Esta sería la forma más limpia de eliminar los posts:
whispers = Post.where(post_type: 4).where("created_at < ?", 1.year.ago)
whispers.find_each do |w|
PostDestroyer.new(Discourse.system_user, w, skip_staff_log: true).destroy
putc "."
end
Esto funcionará esencialmente como si el usuario Sistema hubiera eliminado cada post manualmente usando el botón de eliminar en el post. He incluido skip_staff_log para que no satures tus registros de personal, pero puedes quitarlo si prefieres que la acción quede registrada.
¿Crees que esto cubrirá tus necesidades?