Skip to content

Instantly share code, notes, and snippets.

@erichnascimento
Forked from maxd/db.1.rake
Created November 19, 2017 21:34
Show Gist options
  • Select an option

  • Save erichnascimento/42f9a1676185e14f92206440faffdc9f to your computer and use it in GitHub Desktop.

Select an option

Save erichnascimento/42f9a1676185e14f92206440faffdc9f to your computer and use it in GitHub Desktop.
Rake task for drop active connections to PostgreSQL database
namespace :db do
namespace :drop do
task connections: :environment do
begin
database = ActiveRecord::Base.connection.current_database
ActiveRecord::Base.connection.execute(<<-SQL)
SELECT pg_terminate_backend(pg_stat_activity.pid)
FROM pg_stat_activity
WHERE pg_stat_activity.datname = '#{database}' AND pid <> pg_backend_pid();
SQL
rescue ActiveRecord::NoDatabaseError
# Do nothing
end
end
end
end
namespace :db do
namespace :drop do
task connections: :environment do
database = Rails.configuration.database_configuration[Rails.env]['database']
begin
ActiveRecord::Base.connection.execute(<<-SQL)
SELECT pg_terminate_backend(pg_stat_activity.pid)
FROM pg_stat_activity
WHERE pg_stat_activity.datname = '#{database}' AND pid <> pg_backend_pid();
SQL
rescue ActiveRecord::NoDatabaseError
# Do nothing
end
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment