summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLin Jen-Shin (godfat) <godfat@godfat.org>2017-02-14 15:54:54 +0000
committerLin Jen-Shin (godfat) <godfat@godfat.org>2017-02-14 15:54:54 +0000
commit89b0079035a6fdc37918f5116c97054cbb35d22d (patch)
treec862790e37a8f0b99584532a4c3abb40cb4bf5c6
parent9a0c1ffabcfc9d29e8cccd8d1e2162d6abbf9277 (diff)
parentca659822257f21f09d5b22660ba7ae39395d79e6 (diff)
downloadgitlab-ce-89b0079035a6fdc37918f5116c97054cbb35d22d.tar.gz
Merge branch 'remove-inactive-default-email-services' into 'master'
Remove inactive default email services See merge request !8987
-rw-r--r--changelogs/unreleased/remove-inactive-default-email-services.yml4
-rw-r--r--db/post_migrate/20170206040400_remove_inactive_default_email_services.rb41
2 files changed, 45 insertions, 0 deletions
diff --git a/changelogs/unreleased/remove-inactive-default-email-services.yml b/changelogs/unreleased/remove-inactive-default-email-services.yml
new file mode 100644
index 00000000000..c32c1390e4e
--- /dev/null
+++ b/changelogs/unreleased/remove-inactive-default-email-services.yml
@@ -0,0 +1,4 @@
+---
+title: Remove inactive default email services
+merge_request: 8987
+author:
diff --git a/db/post_migrate/20170206040400_remove_inactive_default_email_services.rb b/db/post_migrate/20170206040400_remove_inactive_default_email_services.rb
new file mode 100644
index 00000000000..a8e63e8bc7d
--- /dev/null
+++ b/db/post_migrate/20170206040400_remove_inactive_default_email_services.rb
@@ -0,0 +1,41 @@
+class RemoveInactiveDefaultEmailServices < ActiveRecord::Migration
+ include Gitlab::Database::MigrationHelpers
+
+ DOWNTIME = false
+
+ disable_ddl_transaction!
+
+ def up
+ 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
+
+ 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
+
+ threads.each(&:join)
+ end
+ end
+
+ def down
+ # Nothing can be done to restore the records
+ end
+end