Tho*_*rin 2 migration ruby-on-rails rails-migrations
我有一个模型用户,我们有primary_key作为user_id而不是id,我知道我应该使用id为primary_key,但客户希望我们应该使用user_id而不是id.
我有另一个表,我必须将该表与user_id相关联
我正在为其他表添加这样的迁移:
t.references :user, index: true, foreign_key: true
Run Code Online (Sandbox Code Playgroud)
但是当我运行迁移时,我得到一个与外键约束相关的错误,例如:
ActiveRecord :: StatementInvalid:PG :: UndefinedColumn:ERROR:外键约束中引用的列"id"不存在ALTER TABLE"user_devices"ADD CONSTRAINT"fk_rails_e700a96826"FOREIGN KEY("user_id")REFERENCES"users"("id")
似乎rails默认尝试将其他表指向id列,但我在users表中有user_id.
那么如何添加外键约束,如:
ALTER TABLE "user_devices" ADD CONSTRAINT "fk_rails_e700a96826"
FOREIGN KEY ("user_id")
REFERENCES "users" ("user_id")
Run Code Online (Sandbox Code Playgroud)
使用rails迁移?
您可以像这样创建单独的迁移:
add_column :user_devices,:user_id,:integer
add_foreign_key :user_devices, :users, column: :user_id, primary_key: "user_id"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4920 次 |
| 最近记录: |