Sha256: fa4b3aa3317fd8d75877cdc4df796767ffa679b986f3b13aa9256812b56b6284
Contents?: true
Size: 1.74 KB
Versions: 7
Compression:
Stored size: 1.74 KB
Contents
namespace :shopapp do desc 'pull prod db to local dev' task pulldb: :environment do timestamp = Time.now.strftime('%Y%m%d%H%M%S') user = Rails.configuration.settings['production_dbuser'] || Rails.configuration.settings['production_user'] server = Rails.configuration.settings['production_dbserver'] || Rails.configuration.settings['production_server'] db_name = Rails.configuration.database_configuration['production']['database'] dev_db_name = Rails.configuration.database_configuration['development']['database'] dump_filename = "#{db_name}_#{timestamp}.dump" puts "Creating production db backup to #{dump_filename}..." system "ssh #{user}@#{server} 'pg_dump -Fc -c #{db_name} > #{dump_filename}'" mkdir_p Rails.root.join('tmp') puts "Copying to local..." system "scp #{user}@#{server}:#{dump_filename} #{Rails.root.join('tmp')}" puts "Restoring to local development database..." system "pg_restore --verbose -c --dbname #{dev_db_name} #{Rails.root.join('tmp', dump_filename)}" puts 'Restored production database to local development.' end desc 'execute command on production server' task run: :environment do ARGV.each { |a| task a.to_sym do ; end } user = Rails.configuration.settings['production_user'] server = Rails.configuration.settings['production_server'] deployment_folder_name = (Rails.configuration.settings['deployment_folder']) || "#{(Rails.configuration.settings['shopapp_name'] || Rails.application.class.parent_name).to_s.downcase.parameterize.underscore}/current" cmd = %(ssh -t #{user}@#{server} 'cd #{deployment_folder_name}; bash --login -c "#{ARGV[1..-1].join(' ')}"') #puts cmd exec cmd end end
Version data entries
7 entries across 7 versions & 1 rubygems