From 33ab4dbee72f548d116502804f5e4e366d956d9b Mon Sep 17 00:00:00 2001 From: zijiren233 Date: Sat, 6 Apr 2024 14:47:20 +0800 Subject: [PATCH] Opt: remove redundant code --- internal/bootstrap/db.go | 19 ++++++++++++++++++- internal/bootstrap/sqlite.go | 26 +------------------------- internal/bootstrap/sqlite_cgo.go | 26 +------------------------- 3 files changed, 20 insertions(+), 51 deletions(-) diff --git a/internal/bootstrap/db.go b/internal/bootstrap/db.go index c20768c..46f7de9 100644 --- a/internal/bootstrap/db.go +++ b/internal/bootstrap/db.go @@ -4,6 +4,7 @@ import ( "context" "database/sql" "fmt" + "strings" "time" log "github.com/sirupsen/logrus" @@ -81,7 +82,23 @@ func createDialector(dbConf conf.DatabaseConfig) (dialector gorm.Dialector, err SkipInitializeWithVersion: false, }) case conf.DatabaseTypeSqlite3: - dialector = newSqliteDialector(dbConf) + if dbConf.CustomDSN != "" { + dsn = dbConf.CustomDSN + } else if dbConf.Name == "memory" || strings.HasPrefix(dbConf.Name, ":memory:") { + dsn = "file::memory:?cache=shared&_journal_mode=WAL&_vacuum=incremental&_pragma=foreign_keys(1)" + log.Infof("sqlite3 database memory") + } else { + if !strings.HasSuffix(dbConf.Name, ".db") { + dbConf.Name = dbConf.Name + ".db" + } + dbConf.Name, err = utils.OptFilePath(dbConf.Name) + if err != nil { + log.Fatalf("sqlite3 database file path error: %v", err) + } + dsn = fmt.Sprintf("%s?_journal_mode=WAL&_vacuum=incremental&_pragma=foreign_keys(1)", dbConf.Name) + log.Infof("sqlite3 database file: %s", dbConf.Name) + } + dialector = openSqlite(dsn) case conf.DatabaseTypePostgres: if dbConf.CustomDSN != "" { dsn = dbConf.CustomDSN diff --git a/internal/bootstrap/sqlite.go b/internal/bootstrap/sqlite.go index b0c0d5f..003644d 100644 --- a/internal/bootstrap/sqlite.go +++ b/internal/bootstrap/sqlite.go @@ -4,34 +4,10 @@ package bootstrap import ( - "fmt" - "strings" - "github.com/glebarez/sqlite" - log "github.com/sirupsen/logrus" - "github.com/synctv-org/synctv/internal/conf" - "github.com/synctv-org/synctv/utils" "gorm.io/gorm" ) -func newSqliteDialector(dbConf conf.DatabaseConfig) gorm.Dialector { - var dsn string - if dbConf.CustomDSN != "" { - dsn = dbConf.CustomDSN - } else if dbConf.Name == "memory" || strings.HasPrefix(dbConf.Name, ":memory:") { - dsn = "file::memory:?cache=shared&_journal_mode=WAL&_vacuum=incremental&_pragma=foreign_keys(1)" - log.Infof("sqlite3 database memory") - } else { - if !strings.HasSuffix(dbConf.Name, ".db") { - dbConf.Name = dbConf.Name + ".db" - } - var err error - dbConf.Name, err = utils.OptFilePath(dbConf.Name) - if err != nil { - log.Fatalf("sqlite3 database file path error: %v", err) - } - dsn = fmt.Sprintf("%s?_journal_mode=WAL&_vacuum=incremental&_pragma=foreign_keys(1)", dbConf.Name) - log.Infof("sqlite3 database file: %s", dbConf.Name) - } +func openSqlite(dsn string) gorm.Dialector { return sqlite.Open(dsn) } diff --git a/internal/bootstrap/sqlite_cgo.go b/internal/bootstrap/sqlite_cgo.go index b2e3c7c..284cb43 100644 --- a/internal/bootstrap/sqlite_cgo.go +++ b/internal/bootstrap/sqlite_cgo.go @@ -4,34 +4,10 @@ package bootstrap import ( - "fmt" - "strings" - - log "github.com/sirupsen/logrus" - "github.com/synctv-org/synctv/internal/conf" - "github.com/synctv-org/synctv/utils" "gorm.io/driver/sqlite" "gorm.io/gorm" ) -func newSqliteDialector(dbConf conf.DatabaseConfig) gorm.Dialector { - var dsn string - if dbConf.CustomDSN != "" { - dsn = dbConf.CustomDSN - } else if dbConf.Name == "memory" || strings.HasPrefix(dbConf.Name, ":memory:") { - dsn = "file::memory:?cache=shared&_journal_mode=WAL&_vacuum=incremental&_pragma=foreign_keys(1)" - log.Infof("sqlite3 database memory") - } else { - if !strings.HasSuffix(dbConf.Name, ".db") { - dbConf.Name = dbConf.Name + ".db" - } - var err error - dbConf.Name, err = utils.OptFilePath(dbConf.Name) - if err != nil { - log.Fatalf("sqlite3 database file path error: %v", err) - } - dsn = fmt.Sprintf("%s?_journal_mode=WAL&_vacuum=incremental&_pragma=foreign_keys(1)", dbConf.Name) - log.Infof("sqlite3 database file: %s", dbConf.Name) - } +func openSqlite(dsn string) gorm.Dialector { return sqlite.Open(dsn) }