fix dblock on failure #964
This commit is contained in:
+7
-1
@@ -4,6 +4,7 @@ import (
|
|||||||
"encoding/json"
|
"encoding/json"
|
||||||
"os"
|
"os"
|
||||||
"path"
|
"path"
|
||||||
|
"strings"
|
||||||
|
|
||||||
"github.com/alireza0/s-ui/config"
|
"github.com/alireza0/s-ui/config"
|
||||||
"github.com/alireza0/s-ui/database/model"
|
"github.com/alireza0/s-ui/database/model"
|
||||||
@@ -49,7 +50,12 @@ func OpenDB(dbPath string) error {
|
|||||||
c := &gorm.Config{
|
c := &gorm.Config{
|
||||||
Logger: gormLogger,
|
Logger: gormLogger,
|
||||||
}
|
}
|
||||||
db, err = gorm.Open(sqlite.Open(dbPath), c)
|
sep := "?"
|
||||||
|
if strings.Contains(dbPath, "?") {
|
||||||
|
sep = "&"
|
||||||
|
}
|
||||||
|
dsn := dbPath + sep + "_busy_timeout=10000"
|
||||||
|
db, err = gorm.Open(sqlite.Open(dsn), c)
|
||||||
|
|
||||||
if config.IsDebug() {
|
if config.IsDebug() {
|
||||||
db = db.Debug()
|
db = db.Debug()
|
||||||
|
|||||||
+3
-1
@@ -169,7 +169,9 @@ func (s *ConfigService) Save(obj string, act string, data json.RawMessage, initU
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
err = s.restartCoreWithConfig(data)
|
configData := make(json.RawMessage, len(data))
|
||||||
|
copy(configData, data)
|
||||||
|
go func() { _ = s.restartCoreWithConfig(configData) }()
|
||||||
case "settings":
|
case "settings":
|
||||||
err = s.SettingService.Save(tx, data)
|
err = s.SettingService.Save(tx, data)
|
||||||
default:
|
default:
|
||||||
|
|||||||
Reference in New Issue
Block a user