FIX: uploads:backfill_shas rake task

This commit is contained in:
Régis Hanol 2015-06-10 17:19:58 +02:00
parent 7bc3a6fff0
commit c1cf602de2

View File

@ -6,21 +6,19 @@ require "digest/sha1"
task "uploads:backfill_shas" => :environment do
RailsMultisite::ConnectionManagement.each_connection do |db|
puts "Backfilling #{db}"
Upload.select([:id, :sha, :url]).find_each do |u|
if u.sha.nil?
puts "Backfilling #{db}..."
Upload.where(sha1: nil).find_each do |u|
begin
path = Discourse.store.path_for(u)
u.sha1 = Digest::SHA1.file(path).hexdigest
u.save!
putc "."
path = "#{Rails.root}/public/#{u.url}"
sha = Digest::SHA1.file(path).hexdigest
begin
Upload.update_all ["sha = ?", sha], ["id = ?", u.id]
rescue ActiveRecord::RecordNotUnique
# not a big deal if we've got a few duplicates
end
rescue Errno::ENOENT
putc "X"
end
end
end
puts "done"
puts "", "Done"
end
################################################################################