Помощь с удалением фотографий с сервера, прикрепленных к удаленным сообщениям

Я не думаю, что таблица post_uploads больше существует. Теперь это uploads и upload_references. Если вы пытаетесь использовать этот метод, возможно, вам потребуется обновить тот старый фрагмент кода с учётом этих изменений.

Как вы удалили эти посты? Просто мягкое удаление через интерфейс? Мне кажется, что настройка, очищающая сиротские изображения (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:

(Кстати, Jobs::DirectoryRefreshDaily и Jobs::DirectoryRefreshOlder отвечают за заполнение каталога пользователей, поэтому здесь они не имеют отношения к делу).