Module: Database

Defined in:
lib/capistrano-db-tasks/database.rb

Defined Under Namespace

Classes: Base, Local, Remote

Class Method Summary collapse

Class Method Details

.check(local_db, remote_db) ⇒ Object



201
202
203
# 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) ⇒ Object



219
220
221
222
223
224
225
226
227
228
# 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) ⇒ Object



205
206
207
208
209
210
211
212
213
214
215
216
217
# 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