Sha256: e1feede878618daf76b6db8617920a24a8a7ba3e6eadb7d40d89546f2d8d1947

Contents?: true

Size: 1.89 KB

Versions: 1

Compression:

Stored size: 1.89 KB

Contents

namespace :db do
  desc 'Dumps database (both data and schema) to FILE or asks for output'
  task :dump => ["#{Rails.root}/config/database.yml", :environment] do
    gzip = ENV['GZIP'].present?
    db = ActiveRecord::Base.configurations[Rails.env]
    backup_file = Time.now.strftime("backup_%Y%m%d%H%M%S.sql")
    unless file = ENV['FILE']
      print "Enter filename of dump [#{backup_file}#{'.gz' if gzip}]: "
      input = STDIN.gets.chop
      file  = (input.blank?)? backup_file : input
    end
    
    dump = PgDumper.new db["database"]
    dump.clear!
    dump.connection = db
    dump.output = backup_file
    dump.verbose! if ENV['VERBOSE'].present?
    dump.compress! ENV['Z']
    
    print "Creating backup to '#{file}'\n"
    
    if dump.run
      system 'gzip', '-v', file if gzip
      print "Backup saved to #{file.inspect}\n"
    else
      print "Backup failed! Error status: #{$?}."
    end
    
    @backup_file = file
  end
  
  desc 'Dumps database (only data) to FILE or asks for output'
  namespace :dump do
    task :data =>  ["#{Rails.root}/config/database.yml", :environment] do
      gzip = ENV['GZIP'].present?
      db = ActiveRecord::Base.configurations[Rails.env]
      backup_file = Time.now.strftime("backup_%Y%m%d%H%M%S.sql")
      unless file = ENV['FILE']
        print "Enter filename of dump [#{backup_file}#{'.gz' if gzip}]: "
        input = STDIN.gets.chop
        file  = (input.blank?)? backup_file : input
      end

      dump = PgDumper.new db["database"]
      dump.data_only!
      dump.connection = db
      dump.output = backup_file
      dump.verbose! if ENV['VERBOSE'].present?
      dump.compress! ENV['Z']

      print "Creating backup to '#{file}'\n"

      if dump.run
        system 'gzip', '-v', file if gzip
        print "Backup saved to #{file.inspect}\n"
      else
        print "Backup failed! Error status: #{$?}."
      end

      @backup_file = file
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
pg_dumper-0.1.8 lib/tasks/db_dump.rake