add_index_options(table_name, column_name, name: nil, if_not_exists: false, internal: false, **options) public

No documentation

This method has no description. You can help the Ruby on Rails community by adding new notes.

Hide source
# 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
Register or log in to add new notes.