首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用go-gorm [Go]创建两个连接表

如何使用go-gorm [Go]创建两个连接表
EN

Stack Overflow用户
提问于 2022-10-06 03:48:14
回答 1查看 72关注 0票数 1

每次运行AutoMigrate()时,我都会得到错误level=fatal msg=“未能找到关系: UserFriends”

这是我的用户模型

代码语言:javascript
复制
type User struct {
UUID          string         `gorm:"primaryKey;unique;not null" json:"user_id"`
Email         string         `gorm:"unique;not null" json:"email" binding:"required,email"`
Password      string         `gorm:"-:all" json:"password"`
DisplayName   string         `gorm:"unique;not null" json:"display_name" binding:"required"`
FirstName     string         `gorm:"not null" json:"first_name" binding:"required"`
LastName      string         `gorm:"not null" json:"last_name" binding:"required"`
PhoneNumber   string         `gorm:"unique;not null" json:"phone_number" binding:"required"`
DateOfBirth   string         `gorm:"not null" json:"date_of_birth" binding:"required"`
EmailVerified bool           `json:"email_verified"`
PhoneVerified bool           `json:"phone_verified"`
PhotoURL      string         `json:"photo_url" binding:"omitempty,url"`
UpdatedAt     time.Time      `json:"updated_at"`
CreatedAt     time.Time      `gorm:"autoCreateTime" json:"created_at"`
DeletedAt     gorm.DeletedAt `gorm:"index" json:"deleted_at"`
RefreshToken  string         `json:"refresh_token"`
Friendship    []Friendship   `gorm:"many2many:users_friendships;"`

}

这是我的友谊模型

代码语言:javascript
复制
type Friendship struct {
gorm.Model
FromUserId   string    `gorm:"primaryKey" json:"from_user"`
ToUserId     string    `gorm:"primaryKey" json:"to_user" binding:"required"`
SentTime     time.Time `json:"sent_time"`
ResponseTime time.Time `json:"response_time"`
Accepted     bool      `json:"accepted"`

}

这是我的用户朋友模型

代码语言:javascript
复制
type UserFriend struct {
UserUUID     string
FriendshipID uint
Accepted     bool

}

以及我的迁移代码

代码语言:javascript
复制
func MigrateDB(db *gorm.DB) error {
err := db.SetupJoinTable(&domain.User{}, "UserFriends", &domain.Friendship{})
if err != nil {
    return err
}

err = db.AutoMigrate(&domain.User{}, &domain.Friendship{}, &joins.UserFriend{})
if err != nil {
    return err
}

return nil

}

EN

回答 1

Stack Overflow用户

发布于 2022-10-06 04:44:40

您应该在这里使用Self Referential Many to Many关系。这里是一个很好的示例的用户朋友关系。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73968486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档