我與 Go 的第一天。我嘗試在 Revel 中使用 GORM 開發(fā)一種遷移機(jī)制。這些是我的模型結(jié)構(gòu):type Role struct { gorm.Model Name string}type User struct { gorm.Model Name string Role Role `gorm:"foreignkey:RoleIdForRole;association_foreignkey:Id"`}我只是按如下方式自動(dòng)遷移兩個(gè)結(jié)構(gòu),效果很好。我看到名為“用戶”和“角色”的表,但用戶表沒有字段“ role_id”或“roleID”db.AutoMigrate(&models.Role{})db.AutoMigrate(&models.User{})我缺少什么?
2 回答

墨色風(fēng)雨
TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超6個(gè)贊
您需要一RoleID列,如果您命名它,則不需要聲明其中foreignkey任何一個(gè)。
type User struct {
? ? gorm.Model
? ? Name? ?string
? ? RoleID int `gorm:"column:RoleIdForRole"`
? ? Role? ?Role
}

阿波羅的戰(zhàn)車
TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超6個(gè)贊
GORM 外鍵不是按照文檔中所述自動(dòng)生成的。
但這有幫助:
db.Model(&models.User{}).AddForeignKey("role_id",?"roles(id)",?"RESTRICT",?"RESTRICT")
不久之后,您需要在遷移表后設(shè)置外鍵。
- 2 回答
- 0 關(guān)注
- 192 瀏覽
添加回答
舉報(bào)
0/150
提交
取消