From 82324db71af9658f88ff210e157ec67d6fa32255 Mon Sep 17 00:00:00 2001 From: Guo Xiang Tan Date: Fri, 2 Sep 2016 10:22:03 +0800 Subject: [PATCH] Allow `uploads:missing` Rake task to be run for a single site. --- lib/tasks/uploads.rake | 77 ++++++++++++++++++++++-------------------- 1 file changed, 40 insertions(+), 37 deletions(-) diff --git a/lib/tasks/uploads.rake b/lib/tasks/uploads.rake index f3c8bee22ee..fad16d88357 100644 --- a/lib/tasks/uploads.rake +++ b/lib/tasks/uploads.rake @@ -318,50 +318,53 @@ end # list all missing uploads and optimized images task "uploads:missing" => :environment do + if ENV["RAILS_DB"] + list_missing_uploads + else + RailsMultisite::ConnectionManagement.each_connection do |db| + list_missing_uploads + end + end +end + +def list_missing_uploads + if Discourse.store.external? + puts "This task only works for internal storages." + return + end public_directory = "#{Rails.root}/public" - RailsMultisite::ConnectionManagement.each_connection do |db| + Upload.find_each do |upload| - if Discourse.store.external? - puts "This task only works for internal storages." - next + # could be a remote image + next unless upload.url =~ /^\/[^\/]/ + + path = "#{public_directory}#{upload.url}" + bad = true + begin + bad = false if File.size(path) != 0 + rescue + # something is messed up end - - - Upload.find_each do |upload| - - # could be a remote image - next unless upload.url =~ /^\/[^\/]/ - - path = "#{public_directory}#{upload.url}" - bad = true - begin - bad = false if File.size(path) != 0 - rescue - # something is messed up - end - puts path if bad - end - - OptimizedImage.find_each do |optimized_image| - - # remote? - next unless optimized_image.url =~ /^\/[^\/]/ - - path = "#{public_directory}#{optimized_image.url}" - - bad = true - begin - bad = false if File.size(path) != 0 - rescue - # something is messed up - end - puts path if bad - end - + puts path if bad end + OptimizedImage.find_each do |optimized_image| + + # remote? + next unless optimized_image.url =~ /^\/[^\/]/ + + path = "#{public_directory}#{optimized_image.url}" + + bad = true + begin + bad = false if File.size(path) != 0 + rescue + # something is messed up + end + puts path if bad + end end ################################################################################