Class: ActiveRecord::Tasks::PostgreSQLDatabaseTasks

Inherits:
Object
  • Object
show all
Defined in:
lib/pgreset.rb

Instance Method Summary collapse

Instance Method Details

#dropObject



6
7
8
9
10
11
12
13
14
15
16
# File 'lib/pgreset.rb', line 6

def drop
  establish_master_connection
  
  pid_column = 'pid'       # Postgresql 9.2 and newer
  if 0 == connection.select_all("SELECT column_name FROM information_schema.columns WHERE table_name = 'pg_stat_activity' AND column_name = 'pid';").count
    pid_column = 'procpid' # Postgresql 9.1 and older
  end

  connection.select_all "SELECT pg_terminate_backend(pg_stat_activity.#{pid_column}) FROM pg_stat_activity WHERE datname='#{configuration['database']}' AND #{pid_column} <> pg_backend_pid();"
  connection.drop_database configuration['database']
end