diff options
Diffstat (limited to 'db/post_migrate')
-rw-r--r-- | db/post_migrate/20170206040400_remove_inactive_default_email_services.rb | 63 |
1 files changed, 23 insertions, 40 deletions
diff --git a/db/post_migrate/20170206040400_remove_inactive_default_email_services.rb b/db/post_migrate/20170206040400_remove_inactive_default_email_services.rb index 249a9e805f1..a8e63e8bc7d 100644 --- a/db/post_migrate/20170206040400_remove_inactive_default_email_services.rb +++ b/db/post_migrate/20170206040400_remove_inactive_default_email_services.rb @@ -6,53 +6,36 @@ class RemoveInactiveDefaultEmailServices < ActiveRecord::Migration disable_ddl_transaction! def up - pool = create_connection_pool - threads = [] - - threads << Thread.new do - pool.with_connection do |connection| - connection.execute <<-SQL.strip_heredoc - DELETE FROM services - WHERE type = 'BuildsEmailService' - AND active IS FALSE - AND properties = '{"notify_only_broken_builds":true}'; - SQL + Gitlab::Database.with_connection_pool(2) do |pool| + threads = [] + + threads << Thread.new do + pool.with_connection do |connection| + connection.execute <<-SQL.strip_heredoc + DELETE FROM services + WHERE type = 'BuildsEmailService' + AND active IS FALSE + AND properties = '{"notify_only_broken_builds":true}'; + SQL + end end - end - threads << Thread.new do - pool.with_connection do |connection| - connection.execute <<-SQL.strip_heredoc - DELETE FROM services - WHERE type = 'PipelinesEmailService' - AND active IS FALSE - AND properties = '{"notify_only_broken_pipelines":true}'; - SQL + threads << Thread.new do + pool.with_connection do |connection| + connection.execute <<-SQL.strip_heredoc + DELETE FROM services + WHERE type = 'PipelinesEmailService' + AND active IS FALSE + AND properties = '{"notify_only_broken_pipelines":true}'; + SQL + end end - end - threads.each(&:join) - pool.disconnect! + threads.each(&:join) + end end def down # Nothing can be done to restore the records end - - private - - def create_connection_pool - # See activerecord-4.2.7.1/lib/active_record/connection_adapters/connection_specification.rb - env = Rails.env - original_config = ActiveRecord::Base.configurations - env_config = original_config[env].merge('pool' => 2) - config = original_config.merge(env => env_config) - - spec = - ActiveRecord:: - ConnectionAdapters:: - ConnectionSpecification::Resolver.new(config).spec(env.to_sym) - - ActiveRecord::ConnectionAdapters::ConnectionPool.new(spec) - end end |