fix: restore login error
This commit is contained in:
@@ -10,6 +10,7 @@ import (
|
|||||||
"reflect"
|
"reflect"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/engigu/baihu-panel/internal/cache"
|
||||||
"github.com/engigu/baihu-panel/internal/constant"
|
"github.com/engigu/baihu-panel/internal/constant"
|
||||||
"github.com/engigu/baihu-panel/internal/database"
|
"github.com/engigu/baihu-panel/internal/database"
|
||||||
"github.com/engigu/baihu-panel/internal/models"
|
"github.com/engigu/baihu-panel/internal/models"
|
||||||
@@ -216,7 +217,7 @@ func (s *BackupService) Restore(zipPath string) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 开启全局事务
|
// 开启全局事务
|
||||||
return database.DB.Transaction(func(tx *gorm.DB) error {
|
err = database.DB.Transaction(func(tx *gorm.DB) error {
|
||||||
// 1. 清空现有数据(物理删除)
|
// 1. 清空现有数据(物理删除)
|
||||||
tx.Unscoped().Where("1=1").Delete(&models.User{})
|
tx.Unscoped().Where("1=1").Delete(&models.User{})
|
||||||
tx.Unscoped().Where("1=1").Delete(&models.Task{})
|
tx.Unscoped().Where("1=1").Delete(&models.Task{})
|
||||||
@@ -245,6 +246,14 @@ func (s *BackupService) Restore(zipPath string) error {
|
|||||||
|
|
||||||
return nil
|
return nil
|
||||||
})
|
})
|
||||||
|
|
||||||
|
if err == nil {
|
||||||
|
// 备份恢复成功后,需要同时刷新内存中的配置缓存以免数据不一致导致异常
|
||||||
|
constant.Secret = s.settingsService.Get(constant.SectionSecurity, constant.KeySecret)
|
||||||
|
cache.LoadSiteCache()
|
||||||
|
}
|
||||||
|
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func restoreStreamBatch[T any](tx *gorm.DB, decoder *json.Decoder) error {
|
func restoreStreamBatch[T any](tx *gorm.DB, decoder *json.Decoder) error {
|
||||||
|
|||||||
Reference in New Issue
Block a user