migrations - Rails ActiveRecord:: Migration ¿Cuál es la diferencia entre index: true y add_index?
rails generate model (2)
Acabo de descubrir que la opción :index
es solo para referencias ( t.references
o t.belongs_to
). Para los tipos de columna "ordinarios", esta opción se ignora (por eso los índices no se reflejan en su schema.db cuando usó la opción :index
).
Para una sintaxis menos detallada hay un tipo de index
:
t.index :column_name # extra options may be provided also
Cuál es la diferencia entre
t.boolean :is_live, index: true
y
add_index :table_name, :is_live
Si no hay diferencia, ¿por qué solo el add_index
se refleja en schema.rb? Cuando uso index: true
, realmente no puedo ver el índice en schema.rb
. Debería usar solo el método add_index
.
Cuando uso el método add_index
, puedo ver esto en mi schema.rb
add_index "table_name", ["is_live"], name: "index_table_name_on_is_live", using: :blahblah
En resumen: ambos hacen el mismo trabajo. "índice: verdadero" solo te ahorra una línea adicional. Vea aquí https://github.com/rails/rails/pull/5262#issuecomment-4329571