一切都正常,但当我清除数据库并再次启动应用程序时,我得到了这个错误:ERROR: relation "orders" does not exist (SQLSTATE 42P01)

我的代码:

type Cart struct {
    gorm.Model
    Products JSONB `gorm:"type:jsonb" json:"products"`
    OrderID  uint
}
type Jurik struct {
    gorm.Model
    Inn             string `json:"inn" gorm:column:"inn"`
    ...
    OrderID         uint
}
type Phyz struct {
    gorm.Model
    Name    string `json:"name" gorm:column:"name"`
    ...
    OrderID uint
}
type Order struct {
    gorm.Model
    Cart    Cart   `json:"cart"`
    User_id string `json:"user_id"`
    Jurik Jurik `json:"jurik"`
    Phyz  Phyz  `json:"phyz"`
}

我真的不明白会出什么问题,因为我的Cart Jurik Phyz表与Order表相关

推荐答案

我不知道它是如何工作的,但我以前的代码是这样的:

func Connect() {

    db, err := gorm.Open(postgres.Open("postgres://postgres:qwerty@localhost:5432/shop"), &gorm.Config{})
    if err != nil {
        panic(err)
    }
    db.AutoMigrate(&models.Categories{}, &models.Products{}, &models.Pagination{}, &models.Feedback{}, &models.Cart{}, &models.Jurik{}, &models.Phyz{}, &models.Order{})
    DB = db
}

然后,我try 为Order人单独迁移:

func Connect() {

    db, err := gorm.Open(postgres.Open("postgres://postgres:qwerty@localhost:5432/shop"), &gorm.Config{})
    if err != nil {
        panic(err)
    }
    db.AutoMigrate(&models.Categories{}, &models.Products{}, &models.Pagination{}, &models.Feedback{}, &models.Cart{}, &models.Jurik{}, &models.Phyz{})
    db.AutoMigrate(&models.Order{})
    DB = db
}

希望这对别人有帮助!

Go相关问答推荐

如何获得与cksum相同的CRC 32?

带有一个新变量的Go冒号等于运算符

租户GUID X的租户不存在self 邮箱帐户的租户(我是唯一的成员)

GO:如何指定类型约束,使S方法的参数类型与接收方的参数类型相同

此 Golang 程序中的同步问题

从Go中的随机日期开始以天为单位获取时间

如何在模板中传递和访问 struct 片段和 struct

assert: mock: I don't know what to return because the method call was unexpected 在 Go 中编写单元测试时出错

Go 信号处理程序不处理终端窗口关闭

如何使用带有方法的字符串枚举作为通用参数?

如何在切片增长时自动将切片的新元素添加到函数参数

如何在 Docker 容器中使用私有存储库进行身份验证

Golang计算 struct struct 中的字段数

Golang 工作池实现意外工作

如何在Golang中的差异函数中杀死命令Exec

如何 Select 前 N 个元素 Gin-Gorm

curl:(56)Recv失败:连接由golang中的对等方与docker重置

GoLang 遍历 yaml 文件

Golang:每个键具有多个值的映射

退格字符在围棋操场中不起作用