From 4da07781573d830244c001f606fa30260e38c472 Mon Sep 17 00:00:00 2001 From: Stan Hu Date: Thu, 26 May 2016 19:19:11 -0700 Subject: [PATCH] Remove project notification settings associated with deleted projects On GitLab.com, there are 1560 project notification settings with no valid project all created on 2016-04-15 10:38:53 for some reason. This migration should purge those entries. b8f38437 should prevent this issue from occurring in the first place. Closes gitlab-com/support-forum#678 --- CHANGELOG | 1 + ...ve_notification_settings_for_deleted_projects.rb | 13 +++++++++++++ 2 files changed, 14 insertions(+) create mode 100644 db/migrate/20160527020117_remove_notification_settings_for_deleted_projects.rb diff --git a/CHANGELOG b/CHANGELOG index 98e24dc63b1..8b3b60b5f59 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -4,6 +4,7 @@ v 8.9.0 (unreleased) - Allow enabling wiki page events from Webhook management UI - Allow forking projects with restricted visibility level - Improve note validation to prevent errors when creating invalid note via API + - Remove project notification settings associated with deleted projects - Redesign navigation for project pages - Fix groups API to list only user's accessible projects - Redesign account and email confirmation emails diff --git a/db/migrate/20160527020117_remove_notification_settings_for_deleted_projects.rb b/db/migrate/20160527020117_remove_notification_settings_for_deleted_projects.rb new file mode 100644 index 00000000000..7910120b4e0 --- /dev/null +++ b/db/migrate/20160527020117_remove_notification_settings_for_deleted_projects.rb @@ -0,0 +1,13 @@ +class RemoveNotificationSettingsForDeletedProjects < ActiveRecord::Migration + def up + execute <<-SQL + DELETE FROM notification_settings + WHERE notification_settings.source_type = 'Project' + AND NOT EXISTS ( + SELECT * + FROM projects + WHERE projects.id = notification_settings.source_id + ) + SQL + end +end