【发布时间】:2013-09-13 02:46:30
【问题描述】:
我创建了一个表并为其添加了索引。 在第二次迁移中,我重命名了该表。 索引会继续工作吗?
【问题讨论】:
标签: ruby-on-rails indexing database-migration
我创建了一个表并为其添加了索引。 在第二次迁移中,我重命名了该表。 索引会继续工作吗?
【问题讨论】:
标签: ruby-on-rails indexing database-migration
不,您需要自己处理索引,因为索引是基于表名的。例如:
remove_index :old_table_name, :column_name
rename_table :old_table_name, :new_table_name
add_index :new_table_name, :column_name
在 Rails 4.0 中,当重命名列或表时,相关索引也会重命名。如果您有重命名索引的迁移,则不再需要它们。
【讨论】:
change 方法中使用 rename_index :table_name, "oldname", "newname"。如果您收到错误“表 'fertilisation_planning_plot_details' 上的索引名称 [...] 太长;限制为 63 个字符”,请先手动将索引重命名为短名称。