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
|
||||
})
|
||||
|
||||
var skipAfterInitialize bool
|
||||
for _, opt := range opts {
|
||||
if opt != nil {
|
||||
if applyErr := opt.Apply(config); applyErr != nil {
|
||||
return nil, applyErr
|
||||
}
|
||||
defer func(opt Option) {
|
||||
if skipAfterInitialize {
|
||||
return
|
||||
}
|
||||
if errr := opt.AfterInitialize(db); errr != nil {
|
||||
err = errr
|
||||
}
|
||||
@ -192,6 +196,10 @@ func Open(dialector Dialector, opts ...Option) (db *DB, err error) {
|
||||
if db, _ := db.DB(); db != nil {
|
||||
_ = db.Close()
|
||||
}
|
||||
|
||||
// DB is not initialized, so we skip AfterInitialize
|
||||
skipAfterInitialize = true
|
||||
return
|
||||
}
|
||||
|
||||
if config.TranslateError {
|
||||
|
Loading…
x
Reference in New Issue
Block a user