我创建了一个表并对其添加了索引。 在第二次迁移中,我重命名了这个表。 索引是否仍然有效?
我创建了一张表并为它添加了索引。 在第二次迁移时,我重命名了这张表。 这个索引还会继续起作用吗?
我创建了一个表并对其添加了索引。 在第二次迁移中,我重命名了这个表。 索引是否仍然有效?
我创建了一张表并为它添加了索引。 在第二次迁移时,我重命名了这张表。 这个索引还会继续起作用吗?
不,你需要自己处理索引,因为索引是根据表名创建的。例如:
remove_index :old_table_name, :column_name
rename_table :old_table_name, :new_table_name
add_index :new_table_name, :column_name
根据Rails 4升级指南:
在Rails 4.0中,当列或表重命名时,相关的索引也会被重命名。如果您有重命名索引的迁移,它们不再需要。
change
方法中使用rename_index :table_name, "oldname", "newname"
来重命名索引。如果你遇到了“Index name [...] on table 'fertilisation_planning_plot_details' is too long; the limit is 63 characters”这个错误,那么先手动将该索引重命名为一个短一些的名称。 - amoebe