Sha256: 4371625a89c8cd9db982a3a605707390d5f485122b132885b892a2f554ecc1a1

Contents?: true

Size: 1.18 KB

Versions: 94

Compression:

Stored size: 1.18 KB

Contents

class AddRuleIndices < ActiveRecord::Migration[4.2]
  def change
    ['gemini_my_rules',  'g_array',    :array,
     'gemini_my_rules',  'g_single',   :scalar,
     'gemini_my_rules',  'g_string',   :scalar,
     'gemini_my_rules',  'g_bool',     :scalar,
     'gemini_my_rules',  'g_integer',  :scalar,
     'gemini_my_rules',  'g_range',    :range,
     'gemini_xyz_rules', 'flavors',    :array,
     'gemini_xyz_rules', 'guard_two',  :scalar,
     'gemini_xyz_rules', 'g_date',     :scalar,
     'gemini_xyz_rules', 'g_datetime', :scalar,
     'gemini_xyz_rules', 'g_bool',     :scalar,
     'gemini_xyz_rules', 'g_integer',  :scalar,
     'gemini_xyz_rules', 'g_range1',   :range,
     'gemini_xyz_rules', 'g_range2',   :range,
    ].in_groups_of(3).each do |table, field, type|
      index = { array: "GIN",
                scalar: "BTREE",
                range: "GIST" }[type]
      case type
      when :array, :scalar
        col="(simple_guards->'#{field}')"
      when :range
        col="(to_numrange(simple_guards->>'#{field}'))"
      end
      sql =<<-SQL
        CREATE INDEX idx_#{table}_#{field} ON #{table} USING #{index}
        (#{col});
      SQL
      execute sql
    end
  end
end

Version data entries

94 entries across 94 versions & 1 rubygems

Version Path
marty-14.3.0 spec/dummy/db/migrate/20171222150100_add_rule_indices.rb
marty-14.0.0 spec/dummy/db/migrate/20171222150100_add_rule_indices.rb
marty-13.0.2 spec/dummy/db/migrate/20171222150100_add_rule_indices.rb
marty-11.0.0 spec/dummy/db/migrate/20171222150100_add_rule_indices.rb
marty-10.0.3 spec/dummy/db/migrate/20171222150100_add_rule_indices.rb
marty-10.0.2 spec/dummy/db/migrate/20171222150100_add_rule_indices.rb
marty-10.0.0 spec/dummy/db/migrate/20171222150100_add_rule_indices.rb
marty-9.5.1 spec/dummy/db/migrate/20171222150100_add_rule_indices.rb
marty-9.5.0 spec/dummy/db/migrate/20171222150100_add_rule_indices.rb
marty-9.3.3 spec/dummy/db/migrate/20171222150100_add_rule_indices.rb
marty-9.3.2 spec/dummy/db/migrate/20171222150100_add_rule_indices.rb
marty-9.3.0 spec/dummy/db/migrate/20171222150100_add_rule_indices.rb
marty-8.5.0 spec/dummy/db/migrate/20171222150100_add_rule_indices.rb
marty-8.4.1 spec/dummy/db/migrate/20171222150100_add_rule_indices.rb
marty-8.3.1 spec/dummy/db/migrate/20171222150100_add_rule_indices.rb
marty-8.2.0 spec/dummy/db/migrate/20171222150100_add_rule_indices.rb
marty-8.0.0 spec/dummy/db/migrate/20171222150100_add_rule_indices.rb
marty-6.1.0 spec/dummy/db/migrate/20171222150100_add_rule_indices.rb
marty-5.2.0 spec/dummy/db/migrate/20171222150100_add_rule_indices.rb
marty-5.1.4 spec/dummy/db/migrate/20171222150100_add_rule_indices.rb