我與 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 關注
- 185 瀏覽
添加回答
舉報
0/150
提交
取消