我与 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
}
阿波罗的战车
TA贡献1862条经验 获得超6个赞
GORM 外键不是按照文档中所述自动生成的。
但这有帮助:
db.Model(&models.User{}).AddForeignKey("role_id", "roles(id)", "RESTRICT", "RESTRICT")
不久之后,您需要在迁移表后设置外键。
- 2 回答
- 0 关注
- 153 浏览
添加回答
举报
0/150
提交
取消