Sha256: 5567d59f2cd30f7f2ee6fe5e2f6579ab5521e3e67be0bb455c0a6058e89c0bcd
Contents?: true
Size: 1.19 KB
Versions: 2
Compression:
Stored size: 1.19 KB
Contents
require "active_record" module Fuzzily module Migration def self.extended(by) by.singleton_class.class_eval do def trigrams_table_name=(custom_name) @trigrams_table_name = custom_name end def trigrams_table_name @trigrams_table_name ||= :trigrams end def trigrams_owner_id_column_type=(custom_type) @trigrams_owner_id_column_type = custom_type end def trigrams_owner_id_column_type @trigrams_owner_id_column_type ||= :integer end def up create_table trigrams_table_name do |t| t.string :trigram, limit: 3 t.integer :score, limit: 2 t.send trigrams_owner_id_column_type, :owner_id t.string :owner_type t.string :fuzzy_field end # owner_id goes first as we'll GROUP BY that add_index trigrams_table_name, [:owner_id, :owner_type, :fuzzy_field, :trigram, :score], name: :index_for_match add_index trigrams_table_name, [:owner_id, :owner_type], name: :index_by_owner end def down drop_table trigrams_table_name end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
fuzzily_reloaded-1.0.1 | lib/fuzzily/migration.rb |
fuzzily_reloaded-1.0.0 | lib/fuzzily/migration.rb |