Je ne pense pas que la table post_uploads existe encore. Il s’agit maintenant de uploads et upload_references. Vous devrez peut-être mettre à jour cet ancien extrait pour en tenir compte si vous essayez cette méthode.
Comment avez-vous supprimé ces publications ? Simplement en les supprimant logiquement dans l’interface utilisateur ? Je pense que le paramètre qui nettoie les images orphelines (clean orphan uploads grace period hours) ne tient pas compte du fait qu’elles sont supprimées logiquement, et se soucie uniquement de savoir si l’image est toujours dans la dernière version de la publication :
Je pense que vous pouvez sélectionner toutes les publications dans la console Rails et utiliser PostDestroyer dessus pour les supprimer définitivement, puis les téléversements seront nettoyés la prochaine fois que Jobs::CleanUpUploads s’exécutera (ou sera déclenché manuellement).
S’il s’agit d’une catégorie entière, par exemple, je pense que vous pouvez utiliser quelque chose comme ceci :
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
Je pense qu’il y a aussi une conversation dans ce sujet qui pourrait vous être utile : Delete deleted-posts permanently in bulk? - #57 by Simon_Manning
Et j’ajouterai l’avertissement habituel concernant la sauvegarde avant d’apporter des modifications dans la console Rails, juste au cas où. Alerte couteau aiguisé.
(Juste pour information, Jobs::DirectoryRefreshDaily et Jobs::DirectoryRefreshOlder sont ceux qui peuplent l’annuaire des utilisateurs (User Directory), donc ils ne sont pas pertinents ici)