From 1be7b0b057d42311a9fca9d206ac7b2453d84d59 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Sun, 2 Sep 2018 22:23:40 +0800 Subject: [PATCH] add sqlite MaxOpenConns to 1 for fixing database locking --- models/models.go | 11 ++++++++++- models/unit_tests.go | 1 + 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/models/models.go b/models/models.go index 0123eab12db97..2446fb6fd1190 100644 --- a/models/models.go +++ b/models/models.go @@ -257,7 +257,16 @@ func getEngine() (*xorm.Engine, error) { return nil, fmt.Errorf("Unknown database type: %s", DbCfg.Type) } - return xorm.NewEngine(DbCfg.Type, connStr) + engine, err := xorm.NewEngine(DbCfg.Type, connStr) + if err != nil { + return nil, err + } + + if DbCfg.Type == "sqlite3" { + engine.SetMaxOpenConns(1) + } + + return engine, nil } // NewTestEngine sets a new test xorm.Engine diff --git a/models/unit_tests.go b/models/unit_tests.go index 2b7f0d0151cb7..85a98058370c6 100644 --- a/models/unit_tests.go +++ b/models/unit_tests.go @@ -79,6 +79,7 @@ func createTestEngine(fixturesDir string) error { if err != nil { return err } + x.SetMaxOpenConns(1) x.SetMapper(core.GonicMapper{}) if err = x.StoreEngine("InnoDB").Sync2(tables...); err != nil { return err