Merge branch 'master' of gitlab.com:gitlab-org/gitlab-ce
This commit is contained in:
commit
757084f715
3 changed files with 35 additions and 2 deletions
|
@ -0,0 +1,10 @@
|
|||
# This migration is a duplicate of 20150425164651_change_collation_for_tag_names.acts_as_taggable_on_engine.rb
|
||||
# It shold be applied before the index additions to ensure that `name` is case sensitive.
|
||||
|
||||
class GitlabChangeCollationForTagNames < ActiveRecord::Migration
|
||||
def up
|
||||
if ActsAsTaggableOn::Utils.using_mysql?
|
||||
execute("ALTER TABLE tags MODIFY name varchar(255) CHARACTER SET utf8 COLLATE utf8_bin;")
|
||||
end
|
||||
end
|
||||
end
|
16
db/migrate/20150425164647_remove_duplicate_tags.rb
Normal file
16
db/migrate/20150425164647_remove_duplicate_tags.rb
Normal file
|
@ -0,0 +1,16 @@
|
|||
class RemoveDuplicateTags < ActiveRecord::Migration
|
||||
def up
|
||||
select_all("SELECT name, COUNT(id) as cnt FROM tags GROUP BY name HAVING COUNT(id) > 1").each do |tag|
|
||||
duplicate_ids = select_all("SELECT id FROM tags WHERE name = '#{tag["name"]}'").map{|tag| tag["id"]}
|
||||
origin_tag_id = duplicate_ids.first
|
||||
duplicate_ids.delete origin_tag_id
|
||||
|
||||
execute("UPDATE taggings SET tag_id = #{origin_tag_id} WHERE tag_id IN(#{duplicate_ids.join(",")})")
|
||||
execute("DELETE FROM tags WHERE id IN(#{duplicate_ids.join(",")})")
|
||||
end
|
||||
end
|
||||
|
||||
def down
|
||||
|
||||
end
|
||||
end
|
|
@ -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'
|
||||
|
|
Loading…
Reference in a new issue