namespace :browsers do
desc 'Load browsers from YAML with deleting old data' task load: :environment do file_path = "#{Rails.root}/tmp/import/browsers.yml" if File.exist?(file_path) puts 'Deleting old browsers...' Browser.destroy_all puts 'Done. Importing...' File.open(file_path, 'r') do |file| YAML.load(file).each do |id, data| entity = Browser.new id: id entity.assign_attributes data entity.save! print "\r#{id} " end puts end Browser.connection.execute "select setval('browsers_id_seq', (select max(id) from browsers));" puts "Done. We have #{Browser.count} browsers now" else puts "Cannot find file #{file_path}" end end desc 'Dump browsers to YAML' task dump: :environment do file_path = "#{Rails.root}/tmp/export/browsers.yml" ignored = %w(id agents_count) File.open file_path, 'w' do |file| Browser.order('id asc').each do |entity| file.puts "#{entity.id}:" entity.attributes.reject { |a, v| ignored.include?(a) || v.nil? }.each do |attribute, value| file.puts " #{attribute}: #{value.inspect}" end end end end
end