gorm 为什么不在日志中报告插入错误?

Why doesn't gorm report an insert error in the logs?

我尝试使用 GORM 执行插入,我的日志显示插入语句并显示

0 rows affected or returned

如果我复制并粘贴插入语句,我会在 psql 中看到这个错误:

ERROR: null value in column "start_dt" violates not-null constraint

有没有办法让我立即在我的 go 日志中看到这个错误?

您必须在插入语句的末尾附加 .Error 以便 GORM return 错误消息(如果有的话)。此外,您可以使用 .GetErrors() 将所有引发的错误作为一个片段。

if err := db.Create(&entity).Error; err != nil {
  fmt.Println(err.Error())
}

您应该在调试模式下使用 gorm 以查看错误消息!

// Enable Logger, show detailed log
db.LogMode(true)

// Disable Logger, don't show any log even errors
db.LogMode(false)

// Debug a single operation, show detailed log for this operation
db.Debug().Where("name = ?", "jinzhu").First(&User{})

Gorm documentation for Logger