module SchemaPlusPgIndexes::Middleware::Postgresql::Dumper::Table
Public Instance Methods
after(env)
click to toggle source
Dump index extensions
# File lib/schema_plus_pg_indexes/middleware/postgresql/dumper.rb, line 8 def after(env) index_defs = env.connection.indexes(env.table.name) env.table.columns.each do |column_dump| index = column_dump.options[:index] set_index_options(index[:name], index, index_defs) if index end env.table.indexes.each do |index_dump| set_index_options(index_dump.name, index_dump.options, index_defs) end end
set_index_options(name, options, index_defs)
click to toggle source
# File lib/schema_plus_pg_indexes/middleware/postgresql/dumper.rb, line 21 def set_index_options(name, options, index_defs) index_def = index_defs.find(&its.name == name) options[:case_sensitive] = false unless index_def.case_sensitive? options[:expression] = index_def.expression if index_def.expression and index_def.case_sensitive? unless index_def.operator_classes.blank? if index_def.columns.uniq.length <= 1 && index_def.operator_classes.values.uniq.length == 1 options[:operator_class] = index_def.operator_classes.values.first else options[:operator_class] = index_def.operator_classes end end end