1
0
mirror of https://github.com/LaCasemate/fab-manager.git synced 2024-11-28 09:24:24 +01:00
fab-manager/config/initializers/postgresql_database_tasks.rb
2023-03-22 10:58:22 +01:00

18 lines
584 B
Ruby

# frozen_string_literal: true
# The following magic allows to drop a PG database even if a connection exists
# @see https://stackoverflow.com/a/38710021
class ActiveRecord::Tasks::PostgreSQLDatabaseTasks
include ActiveRecord::Sanitization::ClassMethods
def drop
establish_master_connection
q = sanitize_sql_array [
"select pg_terminate_backend(pg_stat_activity.pid) from pg_stat_activity where datname= ? AND state='idle';",
configuration_hash[:database]
]
connection.select_all q
connection.drop_database configuration_hash[:database]
end
end