diff --git a/database/middleware.go b/database/middleware.go index c5f164fbb4199b6f2e00ab8f797bac0b15ae0688..3988bb312d78d149f7335ada796a7d4ebf375841 100644 --- a/database/middleware.go +++ b/database/middleware.go @@ -58,11 +58,15 @@ if r := recover(); r != nil { tx.Rollback() panic(r) } - tx.Commit() }() err = fn(tx) if err != nil { - tx.Rollback() + err = tx.Rollback() + } else { + err = tx.Commit() + } + if err == sql.ErrTxDone { + err = nil } return err }