diff --git a/gorm.go b/gorm.go index d54208a6..38750813 100644 --- a/gorm.go +++ b/gorm.go @@ -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 }