Skip to content

Instantly share code, notes, and snippets.

@maxd
Created October 28, 2014 09:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save maxd/766f86648010270b2b5d to your computer and use it in GitHub Desktop.
Save maxd/766f86648010270b2b5d 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