Commit e1727f60 authored by Valery Sizov's avatar Valery Sizov

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
parents 0fc6f0b5 f6c0ef55
......@@ -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'
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment