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
})
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 errr := opt.AfterInitialize(db); errr != nil {
// err = errr
// }
//}(opt)
defer func(opt Option) {
if skipAfterInitialize {
return
}
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 {
_ = db.Close()
}
// DB is not initialized, so we skip AfterInitialize
skipAfterInitialize = true
return
}