module MorpheusHeroku::Load

Public Instance Methods

run() click to toggle source
# File lib/morpheus-heroku/load.rb, line 5
def run
  ensure_db_environment! if Rails.env.development?
  drop_active_connections!
  drop_database!
  create_database!
  load_database!
end

Private Instance Methods

create_database!() click to toggle source
# File lib/morpheus-heroku/load.rb, line 34
def create_database!
  Helper.logger("Rake::Task['db:create']")
  Rake::Task["db:create"].invoke
end
drop_active_connections!() click to toggle source
# File lib/morpheus-heroku/load.rb, line 15
    def drop_active_connections!
      sql_command = <<~SQL
        SELECT pid, pg_terminate_backend(pid)
        FROM pg_stat_activity
        WHERE datname = current_database()
          AND pid <> pg_backend_pid();
      SQL
      Helper.bash_run(command: "psql -d #{MorpheusHeroku.configuration.database_name} -c '#{sql_command}'")
    end
drop_database!() click to toggle source
# File lib/morpheus-heroku/load.rb, line 29
def drop_database!
  Helper.logger("Rake::Task['db:drop']")
  Rake::Task["db:drop"].invoke
end
ensure_db_environment!() click to toggle source
# File lib/morpheus-heroku/load.rb, line 25
def ensure_db_environment!
  Helper.bash_run(command: "bundle exec rake db:environment:set RAILS_ENV=development")
end
load_database!() click to toggle source
# File lib/morpheus-heroku/load.rb, line 39
def load_database!
  Helper.bash_run(command: "pg_restore -O -n public -d #{MorpheusHeroku.configuration.database_name} #{MorpheusHeroku.configuration.backup_location}")
end