Go迁移不会创建外键

我与 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{})

我缺少什么?


小怪兽爱吃肉
浏览 115回答 2
2回答

墨色风雨

您需要一RoleID列,如果您命名它,则不需要声明其中foreignkey任何一个。type User struct {    gorm.Model    Name   string    RoleID int `gorm:"column:RoleIdForRole"`    Role   Role}

阿波罗的战车

GORM 外键不是按照文档中所述自动生成的。但这有帮助:db.Model(&models.User{}).AddForeignKey("role_id", "roles(id)", "RESTRICT", "RESTRICT")不久之后,您需要在迁移表后设置外键。
打开App,查看更多内容
随时随地看视频慕课网APP