From cb2cfc820234e44a36de07519efa079e82687945 Mon Sep 17 00:00:00 2001 From: Stephen Blackstone Date: Fri, 29 Aug 2025 09:55:00 -0400 Subject: [PATCH] Allow the user to pass in their own stdlib.OptionOpenDB to the underlying postgres driver. --- postgres.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/postgres.go b/postgres.go index 2d8fd99..dade1b5 100644 --- a/postgres.go +++ b/postgres.go @@ -31,6 +31,7 @@ type Config struct { PreferSimpleProtocol bool WithoutReturning bool Conn gorm.ConnPool + OptionOpenDB []stdlib.OptionOpenDB } var ( @@ -102,10 +103,9 @@ func (dialector Dialector) Initialize(db *gorm.DB) (err error) { config.DefaultQueryExecMode = pgx.QueryExecModeSimpleProtocol } result := timeZoneMatcher.FindStringSubmatch(dialector.Config.DSN) - var options []stdlib.OptionOpenDB if len(result) > 2 { config.RuntimeParams["timezone"] = result[2] - options = append(options, stdlib.OptionAfterConnect(func(ctx context.Context, conn *pgx.Conn) error { + dialector.OptionOpenDB = append(dialector.OptionOpenDB, stdlib.OptionAfterConnect(func(ctx context.Context, conn *pgx.Conn) error { loc, tzErr := time.LoadLocation(result[2]) if tzErr != nil { return tzErr @@ -118,7 +118,7 @@ func (dialector Dialector) Initialize(db *gorm.DB) (err error) { return nil })) } - db.ConnPool = stdlib.OpenDB(*config, options...) + db.ConnPool = stdlib.OpenDB(*config, dialector.OptionOpenDB...) } return }