Skip to content

Commit 0182855

Browse files
Custom config struct to use custom driver like libsql
just a copy of go-gorm/pull/185
1 parent 2051f80 commit 0182855

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

sqlite.go

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,21 +26,29 @@ type Dialector struct {
2626
Conn gorm.ConnPool
2727
}
2828

29+
type Config struct {
30+
DriverName string
31+
DSN string
32+
Conn gorm.ConnPool
33+
}
34+
2935
func Open(dsn string) gorm.Dialector {
3036
return &Dialector{DSN: dsn}
3137
}
3238

39+
func New(config Config) gorm.Dialector {
40+
return &Dialector{DSN: config.DSN, DriverName: config.DriverName, Conn: config.Conn}
41+
}
42+
3343
func (dialector Dialector) Name() string {
3444
return "sqlite"
3545
}
3646

3747
func (dialector Dialector) Initialize(db *gorm.DB) (err error) {
38-
if dialector.DriverName == "" {
39-
dialector.DriverName = DriverName
40-
}
41-
4248
if dialector.Conn != nil {
4349
db.ConnPool = dialector.Conn
50+
} else if dialector.DriverName != "" {
51+
db.ConnPool, err = sql.Open(dialector.DriverName, dialector.DSN)
4452
} else {
4553
conn, err := sql.Open(dialector.DriverName, dialector.DSN)
4654
if err != nil {

0 commit comments

Comments
 (0)