Rails ActiveRecord:: Миграция, в чем разница между индексом: true и add_index?

В чем разница между

t.boolean :is_live, index: true

и

add_index :table_name, :is_live

Если нет разницы, то как только add_index отражается в schema.rb. Когда я использую index: true, я не могу увидеть индекс в schema.rb. Должен ли я использовать только метод add_index.

Когда используется метод add_index, я могу видеть это в моей схеме schema.rb

add_index "table_name", ["is_live"], name: "index_table_name_on_is_live", using: :blahblah

Ответ 2

Только что выяснилось, что опция :index предназначена только для ссылок (t.references или t.belongs_to). Для "обычных" типов столбцов эта опция игнорируется (поэтому индексы не отражаются в вашем schema.db, когда вы использовали параметр :index).

Для менее подробного синтаксиса существует тип index:

t.index :column_name # extra options may be provided also