为了账号安全,请及时绑定邮箱和手机立即绑定

Go迁移不会创建外键

Go迁移不会创建外键

Go
小怪兽爱吃肉 2023-06-26 16:58:15
我与 Go 的第一天。我尝试在 Revel 中使用 GORM 开发一种迁移机制。这些是我的模型结构:type Role struct {    gorm.Model    Name string}type User struct {    gorm.Model    Name string    Role Role  `gorm:"foreignkey:RoleIdForRole;association_foreignkey:Id"`}我只是按如下方式自动迁移两个结构,效果很好。我看到名为“用户”和“角色”的表,但用户表没有字段“ role_id”或“roleID”db.AutoMigrate(&models.Role{})db.AutoMigrate(&models.User{})我缺少什么?
查看完整描述

2 回答

?
墨色风雨

TA贡献1853条经验 获得超6个赞

您需要一RoleID列,如果您命名它,则不需要声明其中foreignkey任何一个。


type User struct {

    gorm.Model

    Name   string

    RoleID int `gorm:"column:RoleIdForRole"`

    Role   Role

}


查看完整回答
反对 回复 2023-06-26
?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

GORM 外键不是按照文档中所述自动生成的。

但这有帮助:

db.Model(&models.User{}).AddForeignKey("role_id", "roles(id)", "RESTRICT", "RESTRICT")

不久之后,您需要在迁移表后设置外键。


查看完整回答
反对 回复 2023-06-26
  • 2 回答
  • 0 关注
  • 111 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信