official documentation dla GORM demonstruje, w jaki sposób można przetestować na istnienie rekordu, a mianowicie:Jak mogę sprawdzić błędy w operacjach CRUD przy użyciu 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
ten może być wykorzystywany do testowania pośrednio za błędy w tworzeniu płyty, ale raporty żadnej użytecznej informacji w przypadku awarii.
Po sprawdzeniu source code for db.Create
, nie wydaje się być pewnego rodzaju inspekcji stos klatek, które sprawdza błędów przed przystąpieniem, co oznacza, że błędy transakcyjne zawiedzie cicho:
func Create(scope *Scope) {
defer scope.Trace(NowFunc())
if !scope.HasError() {
// actually perform the transaction
}
}
- Jest to błąd, lub czy czegoś brakuje?
- W jaki sposób mogę/powinienem zostać poinformowany o nieudanej transakcji?
- Gdzie mogę uzyskać przydatne informacje dotyczące debugowania?
nie mówi, że nie należą tutaj, ale czy próbował zadać to pytanie na github tego Gorm? –