Rails 5:重命名表迁移

51

使用迁移的最佳方式更改表的名称和所有文件的名称,比如控制器、模型和关联?

当有人克隆我的 repo 并尝试运行 rails:db:migrate 时,是否会出现任何问题?


可能是如何在项目中重命名Rails控制器和模型的重复问题。 - seancdavis
1个回答

106

如何在迁移中更改表的名称最佳方法?

要更改表的名称,可以运行:

$ rails g migration change_[old_table_name]_to_[new_table_name]

在生成的迁移文件中的change方法中添加以下内容:

def change
  rename_table :[old_table_name], :[new_table_name]
end

在两种情况下都要更改 [old_table_name][new_table_name]

(这个问题的一部分已经在这里回答了。)

如果有人在克隆我的仓库后尝试运行rails db:migrate,会有什么问题吗?

没有问题。保留旧的迁移文件并生成一个新文件。这就是数据库迁移的好处。

更改所有控制器、模型和关联文件名的最佳方式是什么?

更改模型名称通常不是太大的问题。许多文本编辑器都可以在目录中进行搜索和替换。

我会手动重命名文件名。


这里是一组更详细的步骤,以确保您已经更改了需要更改的所有内容。


1
在查找替换时,请记住大小写和复数形式的影响。 - schwabsauce
2
如果适用的话,我还建议在迁移中更改外键名称。 - WebDev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接