Fix login SQLITE_BUSY by reusing session transaction

Signed-off-by: Sean Du <do4suki@gmail.com>
This commit is contained in:
2026-04-29 11:55:21 +08:00
parent 3926aef60c
commit ecef4dfa2c
2 changed files with 90 additions and 39 deletions
+8 -1
View File
@@ -12,6 +12,13 @@ var (
UserEng *xorm.Engine
)
func userSQLiteDSN(dbPath string) string {
return dbPath +
"?_pragma=busy_timeout(5000)" +
"&_pragma=journal_mode(WAL)" +
"&_pragma=synchronous(NORMAL)"
}
func init() {
eng, err := xorm.NewEngine("sqlite", MainDb)
if err != nil {
@@ -25,7 +32,7 @@ func init() {
eng.SetMaxIdleConns(5)
MainEng = eng
eng, err = xorm.NewEngine("sqlite", UserDb)
eng, err = xorm.NewEngine("sqlite", userSQLiteDSN(UserDb))
if err != nil {
panic(err)
}