fix: skip AfterInitialize

This commit is contained in:
wenyazhou.13 2025-03-04 17:46:41 +08:00
parent d7064f138a
commit e0824aa1a5

17
gorm.go
View File

@ -130,16 +130,20 @@ 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 errr := opt.AfterInitialize(db); errr != nil { if skipAfterInitialize {
// err = errr return
// } }
//}(opt) if errr := opt.AfterInitialize(db); errr != nil {
err = errr
}
}(opt)
} }
} }
@ -187,6 +191,9 @@ 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 return
} }