module Database

Public Class Methods

check(local_db, remote_db) click to toggle source
# File lib/capistrano-db-tasks/database.rb, line 201
def check(local_db, remote_db)
  raise 'Only mysql or postgresql on remote and local server is supported' unless (local_db.mysql? && remote_db.mysql?) || (local_db.postgresql? && remote_db.postgresql?)
end
local_to_remote(instance) click to toggle source
# File lib/capistrano-db-tasks/database.rb, line 219
def local_to_remote(instance)
  local_db  = Database::Local.new(instance)
  remote_db = Database::Remote.new(instance)

  check(local_db, remote_db)

  local_db.dump.upload
  remote_db.load(local_db.output_file, instance.fetch(:db_local_clean))
  File.unlink(local_db.output_file) if instance.fetch(:db_local_clean)
end
remote_to_local(instance) click to toggle source
# File lib/capistrano-db-tasks/database.rb, line 205
def remote_to_local(instance)
  local_db  = Database::Local.new(instance)
  remote_db = Database::Remote.new(instance)

  check(local_db, remote_db)

  begin
    remote_db.dump.download
  ensure
    remote_db.clean_dump_if_needed
  end
  local_db.load(remote_db.output_file, instance.fetch(:db_local_clean))
end