diff options
Diffstat (limited to 'db/migrate/20161117114805_remove_undeleted_groups.rb')
-rw-r--r-- | db/migrate/20161117114805_remove_undeleted_groups.rb | 105 |
1 files changed, 0 insertions, 105 deletions
diff --git a/db/migrate/20161117114805_remove_undeleted_groups.rb b/db/migrate/20161117114805_remove_undeleted_groups.rb deleted file mode 100644 index 0a4fe1c05b7..00000000000 --- a/db/migrate/20161117114805_remove_undeleted_groups.rb +++ /dev/null @@ -1,105 +0,0 @@ -# See http://doc.gitlab.com/ce/development/migration_style_guide.html -# for more information on how to write migrations for GitLab. - -class RemoveUndeletedGroups < ActiveRecord::Migration[4.2] - DOWNTIME = false - - def up - is_ee = defined?(Gitlab::License) - - if is_ee - execute <<-EOF.strip_heredoc - DELETE FROM path_locks - WHERE project_id IN ( - SELECT project_id - FROM projects - WHERE namespace_id IN (#{namespaces_pending_removal}) - ); - EOF - - execute <<-EOF.strip_heredoc - DELETE FROM remote_mirrors - WHERE project_id IN ( - SELECT project_id - FROM projects - WHERE namespace_id IN (#{namespaces_pending_removal}) - ); - EOF - end - - execute <<-EOF.strip_heredoc - DELETE FROM lists - WHERE label_id IN ( - SELECT id - FROM labels - WHERE group_id IN (#{namespaces_pending_removal}) - ); - EOF - - execute <<-EOF.strip_heredoc - DELETE FROM lists - WHERE board_id IN ( - SELECT id - FROM boards - WHERE project_id IN ( - SELECT project_id - FROM projects - WHERE namespace_id IN (#{namespaces_pending_removal}) - ) - ); - EOF - - execute <<-EOF.strip_heredoc - DELETE FROM labels - WHERE group_id IN (#{namespaces_pending_removal}); - EOF - - execute <<-EOF.strip_heredoc - DELETE FROM boards - WHERE project_id IN ( - SELECT project_id - FROM projects - WHERE namespace_id IN (#{namespaces_pending_removal}) - ) - EOF - - execute <<-EOF.strip_heredoc - DELETE FROM projects - WHERE namespace_id IN (#{namespaces_pending_removal}); - EOF - - if is_ee - # EE adds these columns but we have to make sure this data is cleaned up - # here before we run the DELETE below. An alternative would be patching - # this migration in EE but this will only result in a mess and confusing - # migrations. - execute <<-EOF.strip_heredoc - DELETE FROM protected_branch_push_access_levels - WHERE group_id IN (#{namespaces_pending_removal}); - EOF - - execute <<-EOF.strip_heredoc - DELETE FROM protected_branch_merge_access_levels - WHERE group_id IN (#{namespaces_pending_removal}); - EOF - end - - # This removes namespaces that were supposed to be deleted but still reside - # in the database. - execute "DELETE FROM namespaces WHERE deleted_at IS NOT NULL;" - end - - def down - # This is an irreversible migration; - # If someone is trying to rollback for other reasons, we should not throw an Exception. - # raise ActiveRecord::IrreversibleMigration - end - - def namespaces_pending_removal - "SELECT id FROM ( - SELECT id - FROM namespaces - WHERE deleted_at IS NOT NULL - ) namespace_ids" - end -end |