internetee-registry/db/migrate/20150422132631_save_legal_docs_to_disk.rb
2015-04-23 11:22:06 +03:00

20 lines
656 B
Ruby

class SaveLegalDocsToDisk < ActiveRecord::Migration
def change
add_column :legal_documents, :path, :string
LegalDocument.all.each do |x|
path = nil
loop do
rand = SecureRandom.random_number.to_s.last(4)
next if rand.to_i == 0 || rand.length < 4
path = "#{ENV['legal_documents_dir']}/#{Time.zone.now.to_formatted_s(:number)}_#{rand}.#{x.document_type}"
break unless File.file?(path)
end
body = x.read_attribute('body')
File.open(path, 'wb') { |f| f.write(Base64.decode64(body)) }
x.update_column('path', path)
end
remove_column :legal_documents, :body, :text
end
end