Project

General

Profile

Feature #1448 » 0003-merge-migrations.patch

Marius BĂLTEANU, 2018-09-09 15:31

View differences:

db/migrate/20180802191932_acts_as_taggable_on_migration.acts_as_taggable_on_engine.rb
1
# This migration comes from acts_as_taggable_on_engine (originally 1)
2
if ActiveRecord.gem_version >= Gem::Version.new('5.0')
3
  class ActsAsTaggableOnMigration < ActiveRecord::Migration[4.2]; end
4
else
5
  class ActsAsTaggableOnMigration < ActiveRecord::Migration; end
6
end
7
ActsAsTaggableOnMigration.class_eval do
1
class ActsAsTaggableOnMigration < ActiveRecord::Migration[4.2]
8 2
  def self.up
9
    create_table :tags do |t|
10
      t.string :name
3
    unless table_exists?(:tags)
4
      create_table :tags do |t|
5
        t.string :name
6
      end
11 7
    end
12 8

  
13
    create_table :taggings do |t|
14
      t.references :tag
9
    unless table_exists?(:taggings)
10
      create_table :taggings do |t|
11
        t.references :tag
15 12

  
16
      # You should make sure that the column created is
17
      # long enough to store the required class names.
18
      t.references :taggable, polymorphic: true
19
      t.references :tagger, polymorphic: true
13
        # You should make sure that the column created is
14
        # long enough to store the required class names.
15
        t.references :taggable, polymorphic: true
16
        t.references :tagger, polymorphic: true
20 17

  
21
      # Limit is created to prevent MySQL error on index
22
      # length for MyISAM table type: http://bit.ly/vgW2Ql
23
      t.string :context, limit: 128
18
        # Limit is created to prevent MySQL error on index
19
        # length for MyISAM table type: http://bit.ly/vgW2Ql
20
        t.string :context, limit: 128
24 21

  
25
      t.datetime :created_at
22
        t.datetime :created_at
23
      end
26 24
    end
27 25

  
28
    add_index :taggings, :tag_id
26
    add_index :tags, :name, unique: true unless index_exists?(:tags, :name)
29 27
    add_index :taggings, [:taggable_id, :taggable_type, :context]
28
    add_index :taggings, :tag_id unless index_exists? :taggings, :tag_id
29
    add_index :taggings, :taggable_id unless index_exists? :taggings, :taggable_id
30
    add_index :taggings, :taggable_type unless index_exists? :taggings, :taggable_type
31
    add_index :taggings, :tagger_id unless index_exists? :taggings, :tagger_id
32
    add_index :taggings, :context unless index_exists? :taggings, :context
33

  
34
    unless index_exists? :taggings, [:tagger_id, :tagger_type]
35
      add_index :taggings, [:tagger_id, :tagger_type]
36
    end
37

  
38
    unless index_exists? :taggings, [:tag_id, :taggable_id, :taggable_type, :context, :tagger_id, :tagger_type], unique: true, name: 'taggings_idx'
39
      add_index :taggings,
40
        [:tag_id, :taggable_id, :taggable_type, :context, :tagger_id, :tagger_type],
41
        unique: true, name: 'taggings_idx'
42
    end
43

  
44
    unless index_exists? :taggings, [:taggable_id, :taggable_type, :tagger_id, :context], name: 'taggings_idy'
45
      add_index :taggings, [:taggable_id, :taggable_type, :tagger_id, :context], name: 'taggings_idy'
46
    end
30 47
  end
31 48

  
32 49
  def self.down
db/migrate/20180802191933_add_missing_unique_indices.acts_as_taggable_on_engine.rb
1
# This migration comes from acts_as_taggable_on_engine (originally 2)
2
if ActiveRecord.gem_version >= Gem::Version.new('5.0')
3
  class AddMissingUniqueIndices < ActiveRecord::Migration[4.2]; end
4
else
5
  class AddMissingUniqueIndices < ActiveRecord::Migration; end
6
end
7
AddMissingUniqueIndices.class_eval do
8
  def self.up
9
    add_index :tags, :name, unique: true
10

  
11
    remove_index :taggings, :tag_id if index_exists?(:taggings, :tag_id)
12
    remove_index :taggings, [:taggable_id, :taggable_type, :context]
13
    add_index :taggings,
14
              [:tag_id, :taggable_id, :taggable_type, :context, :tagger_id, :tagger_type],
15
              unique: true, name: 'taggings_idx'
16
  end
17

  
18
  def self.down
19
    remove_index :tags, :name
20

  
21
    remove_index :taggings, name: 'taggings_idx'
22

  
23
    add_index :taggings, :tag_id unless index_exists?(:taggings, :tag_id)
24
    add_index :taggings, [:taggable_id, :taggable_type, :context]
25
  end
26
end
db/migrate/20180802191934_add_taggings_counter_cache_to_tags.acts_as_taggable_on_engine.rb
1
# This migration comes from acts_as_taggable_on_engine (originally 3)
2
if ActiveRecord.gem_version >= Gem::Version.new('5.0')
3
  class AddTaggingsCounterCacheToTags < ActiveRecord::Migration[4.2]; end
4
else
5
  class AddTaggingsCounterCacheToTags < ActiveRecord::Migration; end
6
end
7
AddTaggingsCounterCacheToTags.class_eval do
1
class AddTaggingsCounterCacheToTags < ActiveRecord::Migration[4.2]
8 2
  def self.up
9
    add_column :tags, :taggings_count, :integer, default: 0
3
    unless column_exists?(:tags, :taggings_count, :integer)
4
      add_column :tags, :taggings_count, :integer, default: 0
5
    end
10 6

  
11 7
    ActsAsTaggableOn::Tag.reset_column_information
12 8
    ActsAsTaggableOn::Tag.find_each do |tag|
db/migrate/20180802191935_add_missing_taggable_index.acts_as_taggable_on_engine.rb
1
# This migration comes from acts_as_taggable_on_engine (originally 4)
2
if ActiveRecord.gem_version >= Gem::Version.new('5.0')
3
  class AddMissingTaggableIndex < ActiveRecord::Migration[4.2]; end
4
else
5
  class AddMissingTaggableIndex < ActiveRecord::Migration; end
6
end
7
AddMissingTaggableIndex.class_eval do
8
  def self.up
9
    add_index :taggings, [:taggable_id, :taggable_type, :context]
10
  end
11

  
12
  def self.down
13
    remove_index :taggings, [:taggable_id, :taggable_type, :context]
14
  end
15
end
db/migrate/20180802191936_change_collation_for_tag_names.acts_as_taggable_on_engine.rb
1
# This migration comes from acts_as_taggable_on_engine (originally 5)
2
# This migration is added to circumvent issue #623 and have special characters
3
# work properly
4
if ActiveRecord.gem_version >= Gem::Version.new('5.0')
5
  class ChangeCollationForTagNames < ActiveRecord::Migration[4.2]; end
6
else
7
  class ChangeCollationForTagNames < ActiveRecord::Migration; end
8
end
9
ChangeCollationForTagNames.class_eval do
1
class ChangeCollationForTagNames < ActiveRecord::Migration[4.2]
10 2
  def up
11 3
    if ActsAsTaggableOn::Utils.using_mysql?
12 4
      execute("ALTER TABLE tags MODIFY name varchar(255) CHARACTER SET utf8 COLLATE utf8_bin;")
db/migrate/20180802191937_add_missing_indexes_on_taggings.acts_as_taggable_on_engine.rb
1
# This migration comes from acts_as_taggable_on_engine (originally 6)
2
if ActiveRecord.gem_version >= Gem::Version.new('5.0')
3
  class AddMissingIndexesOnTaggings < ActiveRecord::Migration[4.2]; end
4
else
5
  class AddMissingIndexesOnTaggings < ActiveRecord::Migration; end
6
end
7
AddMissingIndexesOnTaggings.class_eval do
8
  def change
9
    add_index :taggings, :tag_id unless index_exists? :taggings, :tag_id
10
    add_index :taggings, :taggable_id unless index_exists? :taggings, :taggable_id
11
    add_index :taggings, :taggable_type unless index_exists? :taggings, :taggable_type
12
    add_index :taggings, :tagger_id unless index_exists? :taggings, :tagger_id
13
    add_index :taggings, :context unless index_exists? :taggings, :context
14

  
15
    unless index_exists? :taggings, [:tagger_id, :tagger_type]
16
      add_index :taggings, [:tagger_id, :tagger_type]
17
    end
18

  
19
    unless index_exists? :taggings, [:taggable_id, :taggable_type, :tagger_id, :context], name: 'taggings_idy'
20
      add_index :taggings, [:taggable_id, :taggable_type, :tagger_id, :context], name: 'taggings_idy'
21
    end
22
  end
23
end
(11-11/12)