class Naifa::Heroku::Postgres

Public Class Methods

backup(filename, environment=:staging) click to toggle source
# File lib/naifa/heroku.rb, line 6
def self.backup(filename, environment=:staging)
  res = capture(environment)
  Utils.download_file(filename, "`#{build_public_url_command(environment)}`") if res
end
build_restore_command(backup_url, environment) click to toggle source
# File lib/naifa/heroku.rb, line 24
def self.build_restore_command(backup_url, environment)
  "heroku pg:backups:restore #{backup_url} DATABASE_URL -r #{environment}"
end
capture(environment=:staging) click to toggle source
# File lib/naifa/heroku.rb, line 16
def self.capture(environment=:staging)
  Kernel.system(build_capture_command(environment))
end
restore(environment=:staging) click to toggle source
# File lib/naifa/heroku.rb, line 20
def self.restore(environment=:staging)
  Kernel.system(build_capture_command(environment))
end
sync(from=:production, to=:staging) click to toggle source
# File lib/naifa/heroku.rb, line 11
def self.sync(from=:production, to=:staging)
  res = capture(from)
  Kernel.system(build_restore_command("`#{build_public_url_command(from)}`", to)) if res
end

Private Class Methods

build_capture_command(environment) click to toggle source
# File lib/naifa/heroku.rb, line 34
def self.build_capture_command(environment)
  "heroku pg:backups capture -r #{environment}"
end
build_public_url_command(environment) click to toggle source
# File lib/naifa/heroku.rb, line 28
def self.build_public_url_command(environment)
  "heroku pg:backups public-url -r #{environment}"
end