2017-02-06 04:22:55 +00:00
|
|
|
class RemoveInactiveDefaultEmailServices < ActiveRecord::Migration
|
|
|
|
include Gitlab::Database::MigrationHelpers
|
|
|
|
|
|
|
|
DOWNTIME = false
|
|
|
|
|
2017-02-07 14:09:13 +00:00
|
|
|
disable_ddl_transaction!
|
2017-02-06 04:39:36 +00:00
|
|
|
|
2017-02-07 14:09:13 +00:00
|
|
|
def up
|
2017-02-09 13:11:31 +00:00
|
|
|
pool = create_connection_pool
|
|
|
|
threads = []
|
|
|
|
|
|
|
|
threads << Thread.new do
|
|
|
|
pool.with_connection do |connection|
|
|
|
|
connection.execute <<-SQL.strip_heredoc
|
2017-02-07 14:09:13 +00:00
|
|
|
DELETE FROM services
|
|
|
|
WHERE type = 'BuildsEmailService'
|
|
|
|
AND active IS FALSE
|
|
|
|
AND properties = '{"notify_only_broken_builds":true}';
|
2017-02-09 13:11:31 +00:00
|
|
|
SQL
|
|
|
|
end
|
|
|
|
end
|
2017-02-06 04:39:36 +00:00
|
|
|
|
2017-02-09 13:11:31 +00:00
|
|
|
threads << Thread.new do
|
|
|
|
pool.with_connection do |connection|
|
|
|
|
connection.execute <<-SQL.strip_heredoc
|
2017-02-07 14:09:13 +00:00
|
|
|
DELETE FROM services
|
|
|
|
WHERE type = 'PipelinesEmailService'
|
|
|
|
AND active IS FALSE
|
|
|
|
AND properties = '{"notify_only_broken_pipelines":true}';
|
2017-02-09 13:11:31 +00:00
|
|
|
SQL
|
|
|
|
end
|
2017-02-06 04:39:36 +00:00
|
|
|
end
|
2017-02-09 13:11:31 +00:00
|
|
|
|
|
|
|
threads.each(&:join)
|
2017-02-06 04:22:55 +00:00
|
|
|
end
|
|
|
|
|
2017-02-07 14:09:13 +00:00
|
|
|
def down
|
|
|
|
# Nothing can be done to restore the records
|
2017-02-06 04:39:36 +00:00
|
|
|
end
|
2017-02-09 13:11:31 +00:00
|
|
|
|
|
|
|
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
|
2017-02-06 04:22:55 +00:00
|
|
|
end
|