From 930b5ebee56e6fd76e5ff06f611ddff6abe7fbcf Mon Sep 17 00:00:00 2001 From: Chris Hurst <46472228+ytsruh@users.noreply.github.com> Date: Mon, 11 Mar 2024 18:41:52 +0000 Subject: [PATCH 1/2] added config for custom driver --- sqlite.go | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/sqlite.go b/sqlite.go index dc76d110..32bf954c 100644 --- a/sqlite.go +++ b/sqlite.go @@ -24,21 +24,30 @@ type Dialector struct { Conn gorm.ConnPool } +type Config struct { + DriverName string + DSN string + Conn gorm.ConnPool +} + func Open(dsn string) gorm.Dialector { return &Dialector{DSN: dsn} } +func New(config Config) gorm.Dialector { + return &Dialector{DSN: config.DSN, DriverName: config.DriverName, Conn: config.Conn} +} + func (dialector Dialector) Name() string { return "sqlite" } func (dialector Dialector) Initialize(db *gorm.DB) (err error) { - if dialector.DriverName == "" { - dialector.DriverName = DriverName - } if dialector.Conn != nil { db.ConnPool = dialector.Conn + } else if dialector.DriverName != "" { + db.ConnPool, err = sql.Open(dialector.DriverName, dialector.DSN) } else { conn, err := sql.Open(dialector.DriverName, dialector.DSN) if err != nil { From 98c6a78e46ae7df6bd64edd39fc69baaabec86be Mon Sep 17 00:00:00 2001 From: Chris Hurst <46472228+ytsruh@users.noreply.github.com> Date: Tue, 12 Mar 2024 18:51:05 +0000 Subject: [PATCH 2/2] fix error handling and tests failing --- sqlite.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sqlite.go b/sqlite.go index 32bf954c..0543d0b1 100644 --- a/sqlite.go +++ b/sqlite.go @@ -43,11 +43,12 @@ func (dialector Dialector) Name() string { } func (dialector Dialector) Initialize(db *gorm.DB) (err error) { + if dialector.DriverName == "" { + dialector.DriverName = DriverName + } if dialector.Conn != nil { db.ConnPool = dialector.Conn - } else if dialector.DriverName != "" { - db.ConnPool, err = sql.Open(dialector.DriverName, dialector.DSN) } else { conn, err := sql.Open(dialector.DriverName, dialector.DSN) if err != nil {