Use Gitlab::Database.with_connection_pool from !9192
This commit is contained in:
parent
ae93d08b9c
commit
ca65982225
|
@ -6,53 +6,36 @@ class RemoveInactiveDefaultEmailServices < ActiveRecord::Migration
|
|||
disable_ddl_transaction!
|
||||
|
||||
def up
|
||||
pool = create_connection_pool
|
||||
threads = []
|
||||
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
|
||||
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
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
#
|
||||
# It's strongly recommended that you check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema.define(version: 20170204181513) do
|
||||
ActiveRecord::Schema.define(version: 20170210075922) do
|
||||
|
||||
# These are extensions that must be enabled in order to support this database
|
||||
enable_extension "plpgsql"
|
||||
|
|
Loading…
Reference in New Issue