namespace :local do
namespace :db do desc 'Restore the database dump' task :restore, [:name] => [:environment] do |_, args| cmd = nil LocalDump::ConnectionConfig.call do |_app, host, db, user, password| dump_name = LocalDump::DumpName.call(args, db) dump_path = Rails.root.join('db', 'dump', "#{dump_name}.psql") user_info = user ? "--username #{user}" : '' cmd = "PGPASSWORD=#{password} pg_restore --verbose --host #{host} #{user_info} --clean --no-owner --no-acl --dbname #{db} #{dump_path}" end Rake::Task['db:drop'].invoke Rake::Task['db:create'].invoke puts cmd exec cmd end end
end