added 'uploads:backfill_shas' rake task

This commit is contained in:
Régis Hanol 2013-06-15 11:29:20 +02:00
parent 6c4554b941
commit f94e4ffdcb

20
lib/tasks/uploads.rake Normal file
View file

@ -0,0 +1,20 @@
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?
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
end
end
end
puts "done"
end