fix: limit sqlite connection pool to one

This commit is contained in:
Ferdinand Mütsch 2021-12-14 02:17:59 +01:00
parent c5db2c235f
commit 28a3418ad5
3 changed files with 10 additions and 2 deletions

View File

@ -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)
}

View File

@ -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

View File

@ -1 +1 @@
1.30.1
1.30.2