Ajuda para excluir fotos do servidor que foram anexadas a posts excluídos

Acho que a tabela post_uploads não existe mais. Agora é uploads e upload_references. Você pode precisar atualizar esse trecho antigo para levar isso em consideração se estiver tentando usar esse método.

Como você excluiu essas postagens? Apenas excluindo logicamente na interface? Acho que a configuração que limpa imagens órfãs (clean orphan uploads grace period hours) não leva em consideração se elas foram excluídas logicamente, e só se importa se a imagem ainda está na versão mais recente da postagem:

Acho que você pode selecionar todas as postagens no console Rails e usar o PostDestroyer nelas para excluí-las permanentemente, e então os uploads serão limpos na próxima vez que Jobs::CleanUpUploads for executado (ou acionado manualmente).

Se for uma categoria inteira, por exemplo, acho que você pode usar algo assim:

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

Acho que também há alguma conversa neste tópico que você pode achar útil Delete deleted-posts permanently in bulk? - #57 by Simon_Manning

:warning: E adicionarei o aviso usual sobre fazer um backup antes de fazer alterações no console Rails, apenas por precaução. Alerta de Faca Afiada. :rotating_light:

(Apenas para sua informação, mas Jobs::DirectoryRefreshDaily e Jobs::DirectoryRefreshOlder são os que preenchem o Diretório de Usuários, então não são relevantes aqui)

5 curtidas