diff --git a/gorm.go b/gorm.go index 61633c33..32193870 100644 --- a/gorm.go +++ b/gorm.go @@ -374,8 +374,10 @@ func (db *DB) AddError(err error) error { // DB returns `*sql.DB` func (db *DB) DB() (*sql.DB, error) { - connPool := db.Statement.ConnPool - + connPool := db.ConnPool + if db.Statement != nil && db.Statement.ConnPool != nil { + connPool = db.Statement.ConnPool + } if tx, ok := connPool.(*sql.Tx); ok && tx != nil { return (*sql.DB)(reflect.ValueOf(tx).Elem().FieldByName("db").UnsafePointer()), nil }