我想了解 GORM 如何与 MySQL 进行一对一的关系映射。我有 2 个这样的结构:
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"
之后
结果是一样的。为什么上面的代码不起作用?结构定义中是否缺少任何内容?
最佳答案
我无法评论您的问题,所以我会在这里提问: 您是否以以下任何方式迁移架构:
db.AutoMigrate(&User{}, &UserSession{})
? 如果这样做,您应该会在日志中看到一些详细的错误,这可能对您有用。
关于mysql - 使用 GORM for Golang 的一对一关系映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42083941/