【发布时间】:2016-12-11 10:02:27
【问题描述】:
我有一个模型用户,我们将 primary_key 作为 user_id 而不是 id,我知道我应该使用 id 作为 primary_key 但客户希望我们应该使用 user_id 而不是 id。
我有另一个表,我必须将该表与 user_id 相关联
我正在为其他表添加这样的迁移:
t.references :user, index: true, foreign_key: true
但是当我运行迁移时,我收到与外键约束相关的错误,例如:
ActiveRecord::StatementInvalid: PG::UndefinedColumn: 错误: 外键约束中引用的列“id”不存在 更改表“user_devices”添加约束“fk_rails_e700a96826” 外键(“user_id”) 参考“用户”(“id”)
似乎 rails 默认尝试使用 id 列指向其他表,但我在 users 表中有 user_id。
那么如何添加外键约束,例如:
ALTER TABLE "user_devices" ADD CONSTRAINT "fk_rails_e700a96826"
FOREIGN KEY ("user_id")
REFERENCES "users" ("user_id")
使用 Rails 迁移?
【问题讨论】:
标签: ruby-on-rails migration rails-migrations