post_uploads 테이블은 더 이상 존재하지 않는 것 같습니다. 현재는 uploads와 upload_references로 변경되었습니다. 해당 방법을 시도하고 있다면, 이 변경 사항을 반영하도록 기존 스니펫을 업데이트해야 할 수 있습니다.
해당 게시글들을 어떻게 삭제하셨나요? UI에서 소프트 삭제만 수행하신 건가요? 고아 이미지(orphaned images)를 정리하는 설정(clean orphan uploads grace period hours)은 게시글이 소프트 삭제되었는지를 고려하지 않고, 이미지가 게시글의 최신 버전에서 여전히 존재하는지만 확인하는 것 같습니다:
rails 콘솔에서 모든 게시글을 선택하여 PostDestroyer를 사용해 하드 삭제(hard delete)한 후, 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
rails 콘솔에서 변경 사항을 적용하기 전에 백업을 꼭 받으라는 일반적인 경고도 덧붙이고 싶습니다. 만약의 상황에 대비해서요. 날카로운 칼 주의.
(참고로, Jobs::DirectoryRefreshDaily와 Jobs::DirectoryRefreshOlder는 User Directory를 채우는 잡들이므로, 여기서는 관련이 없습니다.)