Sha256: cc549c2b71f3ed272d559598c0515c4febf27b7a3419aecbad265bd0a240681c

Contents?: true

Size: 1.08 KB

Versions: 7

Compression:

Stored size: 1.08 KB

Contents

if ActiveRecord.gem_version >= Gem::Version.new('5.0')
  class AddMissingUniqueIndices < ActiveRecord::Migration[4.2]; end
else
  class AddMissingUniqueIndices < ActiveRecord::Migration; end
end
AddMissingUniqueIndices.class_eval do
  def self.up
    add_index ActsAsTaggableOn.tags_table, :name, unique: true

    remove_index ActsAsTaggableOn.taggings_table, :tag_id if index_exists?(ActsAsTaggableOn.taggings_table, :tag_id)
    remove_index ActsAsTaggableOn.taggings_table, name: 'taggings_taggable_context_idx'
    add_index ActsAsTaggableOn.taggings_table,
              [:tag_id, :taggable_id, :taggable_type, :context, :tagger_id, :tagger_type],
              unique: true, name: 'taggings_idx'
  end

  def self.down
    remove_index ActsAsTaggableOn.tags_table, :name

    remove_index ActsAsTaggableOn.taggings_table, name: 'taggings_idx'

    add_index ActsAsTaggableOn.taggings_table, :tag_id unless index_exists?(ActsAsTaggableOn.taggings_table, :tag_id)
    add_index ActsAsTaggableOn.taggings_table, [:taggable_id, :taggable_type, :context], name: 'taggings_taggable_context_idx'
  end
end

Version data entries

7 entries across 7 versions & 3 rubygems

Version Path
acts-as-taggable-on-fix-8.1.1 db/migrate/2_add_missing_unique_indices.rb
acts-as-taggable-on-fix-8.1.0 db/migrate/2_add_missing_unique_indices.rb
acts-as-taggable-on-8.1.0 db/migrate/2_add_missing_unique_indices.rb
acts-as-taggable-on-8.0.0 db/migrate/2_add_missing_unique_indices.rb
acts-as-taggable-on-7.0.0 db/migrate/2_add_missing_unique_indices.rb
acts-as-taggable-on-6.5.0 db/migrate/2_add_missing_unique_indices.rb
sb-acts-as-taggable-on-6.5.0 db/migrate/2_add_missing_unique_indices.rb