Discourse 批量永久删除已删除的话题及回复

Discourse 默认设计上是不允许批量永久删除话题的,不过我们可以通过 rails 控制台轻松做到这一点,相关命令如下:

./launcher enter app
rails c

Topic.with_deleted.where(deleted_at: ...1.seconds.ago).limit(1000).destroy_all
Post.find_by_sql("select * from posts where topic_id not in (select id from topics)").each { |p| p.destroy }

如果还想永久删除话题已删除的回复的话,可以使用此命令:

Post.with_deleted.where(deleted_at: ...1.seconds.ago).limit(1000).destroy_all