据this,在轨道4,5,重命名列也将重新命名指数。
class TestMigration < ActiveRecord::Migration
def change
binding.pry
rename_column :feature_roles, :feature_id, :test_id
binding.pry
end
end
当我在迁移之前上市的该表的索引,特定索引的名称是index_feature_roles_on_feature_id
甚至也迁移之后,仍然是相同的。为什么没有更新到index_feature_roles_on_test_id
?
我使用JRuby 9.1.12.0(红宝石2.3.3)
也许指数的名称不生成的数据库,它就是我们给,而在这种情况下创建索引的索引的名字不会得到任何更新,但绝对引用将被更新,这将同样的方式工作。
仍然要更新,你可以删除索引并重新创建索引名。
DROP INDEX index_feature_roles_on_feature_id;
帖子说重新更新的列索引
CREATE INDEX index_feature_roles_on_test_id ON feature_roles;
这可能是有益的,如果在长期来看可能是在那里等几个开发人员可能将在其上删除的混乱一样的东西可正常工作的情况下。
有一个在activerecord-jdbc-adapter宝石了潜在的错误。退房的GitHub issue了解详情。