run remove rails migrations index data create column change_column ruby-on-rails migration

ruby on rails - remove - ¿Es posible renombrar un índice usando una migración de rieles?



rollback migration rails (5)

Sé que hay una transformación rename_column , pero parece que rename_index no existe.

¿Tengo que usar remove_index y add_index en add_index lugar?


A partir de Rails 5 (EDIT: también en Rails 4), el cambio de nombre de la columna también cambiará el nombre del índice automáticamente.



Según la API , usar remove_index y add_index es la única forma de lograr esto.


También puede ejecutar SQL arbitrario en sus migraciones.

Tenemos algunos métodos de ayuda que agregan claves externas a nuestras tablas:

def add_foreign_key(from_table, from_column, to_table) constraint_name = "fk_#{from_table}_#{from_column}" execute %{alter table #{from_table} add constraint #{constraint_name} foreign key (#{from_column}) references #{to_table}(id) } end

Puede usar cualquier SQL que admita su base de datos.


rename_index debería tener cadenas y no símbolos.

rename_index :table_name, ''old_name'', ''new_name''

Me hizo arañar mi cabeza por un tiempo cuando trato de cambiar el nombre de una tabla y sus índices. Rails 3.2.3 y MySQL.