J’essaie quelque chose comme ça :
def add_missing_files_to_uploads
public_directory = Rails.root.join("public").to_s
db = RailsMultisite::ConnectionManagement.current_db
uploads_directory = File.join(public_directory, 'uploads', db).to_s
# fichiers uploadés et images optimisées
missing = 0
matched = 0
Dir.glob("#{uploads_directory}/**/*.pdf").each do |file_path|
sha1 = Upload.generate_digest(file_path)
url = file_path.split(public_directory, 2)[1]
if (Upload.where(sha1: sha1).empty? &&
Upload.where(url: url).empty?)
puts "MANQUANT #{file_path}" si DEBUG
missing += 1
else
matched += 1
end
end
puts "MANQUANTS : #{missing}. Correspondances : #{matched}"
end
Ça a-t-il l’air à peu près correct ? Mon premier test semble avoir échoué, mais j’ai peut-être fait une erreur quelque part.