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

Version Path
shopapp-0.2.25 lib/shopapp/tasks/shopapp.rake
shopapp-0.2.24 lib/shopapp/tasks/shopapp.rake
shopapp-0.2.22 lib/shopapp/tasks/shopapp.rake
shopapp-0.2.21 lib/shopapp/tasks/shopapp.rake
shopapp-0.2.20 lib/shopapp/tasks/shopapp.rake
shopapp-0.2.19 lib/shopapp/tasks/shopapp.rake
shopapp-0.2.18 lib/shopapp/tasks/shopapp.rake