我正在进行rails迁移以重命名表,我想自动重命名其外键。例如。 User
有多个posts
,我正在将User
重命名为Person
def change
rename_table :users, :people
end
我想创建自动迁移,例如
def change
rename_column :posts, :user_id, :person_id
end
我一直想让模型形成迁移并查看其has_many
模型,例如如this answer中所述。有更简单的方法吗?
答案 0 :(得分:2)
如果Rails提供重命名外键会很棒但我没有找到如何告诉它这样做。
但是,您可以为引用users
的每个表执行以下操作:
remove_foreign_key :posts, :users
rename_column :posts, :user_id, :person_id
add_foreign_key :posts, :people
这会保留您已有的参考资料。
小心使用表名,因为remove_foreign_key
如果你忘记了这些名称(一些发生器会这样做,或者在你使用单数而不是复数的情况下发出警告的话)不会为你复数。