diff --git a/config/config.go b/config/config.go index 3e7e63b..9b15793 100644 --- a/config/config.go +++ b/config/config.go @@ -239,6 +239,10 @@ func (c *appConfig) GetWeeklyReportTime() string { return strings.Split(c.ReportTimeWeekly, ",")[1] } +func (c *dbConfig) IsSQLite() bool { + return c.Dialect == "sqlite3" +} + func (c *serverConfig) GetPublicUrl() string { return strings.TrimSuffix(c.PublicUrl, "/") } @@ -365,6 +369,10 @@ func Load(version string) *Config { if config.Db.MaxConn <= 0 { logbuch.Fatal("you must allow at least one database connection") } + if config.Db.MaxConn > 1 && config.Db.IsSQLite() { + logbuch.Warn("with sqlite, only a single connection is supported") // otherwise 'PRAGMA foreign_keys=ON' would somehow have to be set for every connection in the pool + config.Db.MaxConn = 1 + } if config.Mail.Provider != "" && findString(config.Mail.Provider, emailProviders, "") == "" { logbuch.Fatal("unknown mail provider '%s'", config.Mail.Provider) } diff --git a/main.go b/main.go index 83829de..5d3a420 100644 --- a/main.go +++ b/main.go @@ -118,7 +118,7 @@ func main() { // Connect to database var err error db, err = gorm.Open(config.Db.GetDialector(), &gorm.Config{Logger: gormLogger}) - if config.Db.Dialect == "sqlite3" { + if config.Db.IsSQLite() { db.Exec("PRAGMA foreign_keys = ON;") if !utils.IsCleanDB(db) && !utils.HasConstraints(db) { db.DisableForeignKeyConstraintWhenMigrating = true diff --git a/version.txt b/version.txt index 7f3c3af..d1eaa3b 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -1.30.1 +1.30.2