我试图了解GORM如何与MySQL进行一对一的关系映射 . 我有两个这样的结构:
type User struct {
Id uint `gorm:"AUTO_INCREMENT"`
FirstName string `gorm:"column:first_name"`
LastName string `gorm:"column:last_name"`
EncryptedUserId string `gorm:"size:255"`
Email string `gorm:"not null;unique"`
Password string `gorm:"not null;unique"`
CreatedAt int64 `gorm:"type(timestamp)"`
}
type UserSession struct {
Id uint `gorm:"AUTO_INCREMENT"`
UserId User
SessionToken string `gorm:"column:session_token"`
CreatedAt int64 `gorm:"type(timestamp)"`
}
User
和 UserSession
共享一对一的关系 . 但是,当运行上面的代码时,不会创建 UserSession
表的 UserId
列 . 即使在指定外键约束 gorm:"ForeignKey:Id"
之后,结果也是相同的 . 为什么上面的代码不起作用?结构定义中是否缺少任何内容?
1 回答
我不能评论你的问题所以我会在这里问:你是否以任何方式迁移你的架构:
?如果这样做,您应该在日志中获得一些详细错误,这可能对您有用 .