fix: return init dialector error (#7379)
* fix: return init dialector error * mock defer * fix: skip AfterInitialize --------- Co-authored-by: wenyazhou.13 <wenyazhou.13@bytedance.com>
This commit is contained in:
parent
e3037e4ef0
commit
8e7ab46c1b
8
gorm.go
8
gorm.go
@ -135,12 +135,16 @@ func Open(dialector Dialector, opts ...Option) (db *DB, err error) {
|
|||||||
return isConfig && !isConfig2
|
return isConfig && !isConfig2
|
||||||
})
|
})
|
||||||
|
|
||||||
|
var skipAfterInitialize bool
|
||||||
for _, opt := range opts {
|
for _, opt := range opts {
|
||||||
if opt != nil {
|
if opt != nil {
|
||||||
if applyErr := opt.Apply(config); applyErr != nil {
|
if applyErr := opt.Apply(config); applyErr != nil {
|
||||||
return nil, applyErr
|
return nil, applyErr
|
||||||
}
|
}
|
||||||
defer func(opt Option) {
|
defer func(opt Option) {
|
||||||
|
if skipAfterInitialize {
|
||||||
|
return
|
||||||
|
}
|
||||||
if errr := opt.AfterInitialize(db); errr != nil {
|
if errr := opt.AfterInitialize(db); errr != nil {
|
||||||
err = errr
|
err = errr
|
||||||
}
|
}
|
||||||
@ -192,6 +196,10 @@ func Open(dialector Dialector, opts ...Option) (db *DB, err error) {
|
|||||||
if db, _ := db.DB(); db != nil {
|
if db, _ := db.DB(); db != nil {
|
||||||
_ = db.Close()
|
_ = db.Close()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// DB is not initialized, so we skip AfterInitialize
|
||||||
|
skipAfterInitialize = true
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if config.TranslateError {
|
if config.TranslateError {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user