当前位置:  开发笔记 > 后端 > 正文

是否可以使用rails迁移重命名索引?

如何解决《是否可以使用rails迁移重命名索引?》经验,为你挑选了3个好方法。

我知道有一个rename_column转变,但似乎rename_index不存在.

我必须使用remove_indexadd_index不是吗?



1> 小智..:

rename_index 应该给出字符串而不是符号.

rename_index :table_name, 'old_name', 'new_name'

当我试图重命名一个表并且它是索引时,让我挠了一下头.Rails 3.2.3和MySQL.



2> Guillaume..:

Rails 3提供了重命名索引的快捷方式:

rename_index :table_name, :old_name, :new_name

http://guides.rubyonrails.org/migrations.html

顺便说一句,它除了删除旧的并添加新的之外没有什么作用:

http://apidock.com/rails/v2.3.8/ActiveRecord/ConnectionAdapters/SchemaStatements/rename_index


正如nothus在下面的回答中指出的那样,索引名称必须以字符串形式给出,否则rename_index调用将无声地失败
rename_index似乎在Rails 3.1.3中实际上没有做任何事情.迁移似乎运行得很干净,但检查schema.rb并在MySQL中运行`SHOW INDEXES FROM table_name`显示索引保持它的先前名称.

3> Greg Blass..:

从Rails 5开始(编辑:也在Rails 4中),重命名列也将自动重命名索引.

推荐阅读
牛尾巴2010
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有