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



146
147
148
149
150
# File 'lib/capistrano-db-tasks/database.rb', line 146

def check(local_db, remote_db)
  unless (local_db.mysql? && remote_db.mysql?) || (local_db.postgresql? && remote_db.postgresql?)
    raise 'Only mysql or postgresql on remote and local server is supported'
  end
end

.local_to_remote(instance) ⇒ Object



166
167
168
169
170
171
172
173
174
175
# File 'lib/capistrano-db-tasks/database.rb', line 166

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



152
153
154
155
156
157
158
159
160
161
162
163
164
# File 'lib/capistrano-db-tasks/database.rb', line 152

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