求助:删除已删除帖子附加的服务器照片

我认为 post_uploads 表已不存在。现在是 uploadsupload_references。如果你正在尝试使用旧方法,可能需要更新该旧代码片段以考虑这一点。

你是如何删除这些帖子的?只是在 UI 中软删除吗?我认为清理孤立图片的设置(clean orphan uploads grace period hours)不考虑它们是否被软删除,只关心图片是否仍在帖子的最新版本中:

我认为你可以通过 rails 控制台选择所有帖子,并使用 PostDestroyer 来硬删除它们,然后在下次 Jobs::CleanUpUploads 运行(或手动触发)时,上传文件将被清理。

例如,如果它是一个完整的类别,我认为你可以使用类似这样的方法:

category = Category.where(id: CATEGORY_ID).pluck(:id)
topic = Topic.where(category_id: category).pluck(:id)

topic.each do |t|
  Post.where(topic_id: t).find_each do |p|
    PostDestroyer.new(Discourse.system_user, p).destroy
    p.destroy!
  end
end

我认为这个主题也有一些讨论,你可能会觉得有用 Delete deleted-posts permanently in bulk? - #57 by Simon_Manning

:warning: 我将添加通常的警告,即在 rails 控制台中进行更改之前进行备份,以防万一。锋利刀具警报。 :rotating_light:

(只是 FYI,但 Jobs::DirectoryRefreshDailyJobs::DirectoryRefreshOlder 是填充 用户目录 的作业,与此无关)

5 个赞