require 'csv' require 'open-uri' require 'time' require 'colorize'
namespace 'pattana' do
namespace 'import' do namespace 'master_data' do desc "Import all data in sequence" task 'all' => :environment do import_list = ["countries", "regions", "cities"] import_list.each do |item| print "Importing #{item.titleize} \t".yellow begin Rake::Task["pattana:import:master_data:#{item}"].invoke rescue ArgumentError => e puts "Loading #{item} - Failed - #{e.message}".red rescue Exception => e puts "Importing #{item.titleize} - Failed - #{e.message}".red puts "Backtrace:\n\t#{e.backtrace.join("\n\t")}" end end puts " " end # Import from SQL file ["Country", "Region", "City"].each do |cls_name| name = cls_name.underscore.pluralize desc "Import #{cls_name.pluralize}" task name => :environment do path = Pattana::Engine.root.join('db', 'master_data', "#{cls_name.constantize.table_name}.sql") begin system "bundle exec rails db < #{path.to_s}" puts "Imported #{cls_name.pluralize} SQL file successfully".green puts "Saved #{cls_name.constantize.count} rows".green rescue ArgumentError => e puts "Loading #{cls_name} - Failed - #{e.message}".red rescue Exception => e puts "Importing #{cls_name.titleize} - Failed - #{e.message}".red puts "Backtrace:\n\t#{e.backtrace.join("\n\t")}" end end end end end
end