official documentation для GORM демонстрирует способ, в котором можно проверить на наличие записи, то есть:Как проверить ошибки в CRUD-операциях с помощью GORM?
user := User{Name: "Jinzhu", Age: 18, Birthday: time.Now()}
// returns true if record hasn’t been saved (primary key `Id` is blank)
db.NewRecord(user) // => true
db.Create(&user)
// will return false after `user` created
db.NewRecord(user) // => false
Это может быть использовано, чтобы проверить косвенно ошибки в создании звукозаписывающего но отчеты никакой полезной информации в случае отказа.
Проверив source code for db.Create
, кажется, есть какая-то инспекции стека кадра, который проверяет на наличие ошибок, прежде чем продолжить, что означает, что транзакционные ошибки будут терпеть неудачу тихо:
func Create(scope *Scope) {
defer scope.Trace(NowFunc())
if !scope.HasError() {
// actually perform the transaction
}
}
- Является ли это ошибка, или я что-то упускаю?
- Как я могу получить информацию о неудачной транзакции?
- Где я могу получить полезную отладочную информацию?
не говорит, что она не принадлежит здесь, но вы пробовали задать этот вопрос на GitHub этого GORM? –