summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorValery Sizov <valery@gitlab.com>2015-05-08 08:27:38 +0000
committerValery Sizov <valery@gitlab.com>2015-05-08 08:27:38 +0000
commite1727f608b7ccc3ac2c4bf55ca96e4b811ed851a (patch)
tree15c9757aacd27fc06f7a2db9b57da8a011c90c6f
parent0fc6f0b5d406f530e9ad8a35f0188536f6525cb9 (diff)
parentf6c0ef5553fde03ae3a04ba48733455a5415a3ac (diff)
downloadgitlab-ce-e1727f608b7ccc3ac2c4bf55ca96e4b811ed851a.tar.gz
Merge branch 'conditional-delete-taggings-indices' into 'master'
Conditionally remove indices that may not exist in pre-GitLab v6.7 installations In pre-GitLab v6.7 installations, the `tagging` indices were directly added to the init schema and not added in a migration. Anyone using this older DB schema may not have these indicies, so only remove them if they are there. Closes #1593 See merge request !626
-rw-r--r--db/migrate/20150425164648_add_missing_unique_indices.acts_as_taggable_on_engine.rb11
1 files changed, 9 insertions, 2 deletions
diff --git a/db/migrate/20150425164648_add_missing_unique_indices.acts_as_taggable_on_engine.rb b/db/migrate/20150425164648_add_missing_unique_indices.acts_as_taggable_on_engine.rb
index 4ca676f6c72..c1b78681519 100644
--- a/db/migrate/20150425164648_add_missing_unique_indices.acts_as_taggable_on_engine.rb
+++ b/db/migrate/20150425164648_add_missing_unique_indices.acts_as_taggable_on_engine.rb
@@ -3,8 +3,15 @@ class AddMissingUniqueIndices < ActiveRecord::Migration
def self.up
add_index :tags, :name, unique: true
- remove_index :taggings, :tag_id
- remove_index :taggings, [:taggable_id, :taggable_type, :context]
+ # pre-GitLab v6.7.0 may not have these indices since there were no
+ # migrations for them
+ if index_exists?(:taggings, :tag_id)
+ remove_index :taggings, :tag_id
+ end
+
+ if index_exists?(:taggings, [:taggable_id, :taggable_type, :context])
+ remove_index :taggings, [:taggable_id, :taggable_type, :context]
+ end
add_index :taggings,
[:tag_id, :taggable_id, :taggable_type, :context, :tagger_id, :tagger_type],
unique: true, name: 'taggings_idx'