method
add_index_options
v6.1.3.1 -
Show latest stable
- Class:
ActiveRecord::ConnectionAdapters::SchemaStatements
add_index_options(table_name, column_name, name: nil, if_not_exists: false, internal: false, **options)public
No documentation available.
# File activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb, line 1288
def add_index_options(table_name, column_name, name: nil, if_not_exists: false, internal: false, **options) # :nodoc:
options.assert_valid_keys(:unique, :length, :order, :opclass, :where, :type, :using, :comment, :algorithm)
column_names = index_column_names(column_name)
index_name = name&.to_s
index_name ||= index_name(table_name, column_names)
validate_index_length!(table_name, index_name, internal)
index = IndexDefinition.new(
table_name, index_name,
options[:unique],
column_names,
lengths: options[:length] || {},
orders: options[:order] || {},
opclasses: options[:opclass] || {},
where: options[:where],
type: options[:type],
using: options[:using],
comment: options[:comment]
)
[index, index_algorithm(options[:algorithm]), if_not_exists]
end