Skip to content

Commit 364edbe

Browse files
authored
fix: fix the issue of abnormal display of backup account size (#7833)
1 parent 8c2bb23 commit 364edbe

File tree

3 files changed

+24
-8
lines changed

3 files changed

+24
-8
lines changed

agent/app/repo/backup.go

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -166,13 +166,29 @@ func (u *BackupRepo) GetRecord(opts ...DBOption) (*model.BackupRecord, error) {
166166

167167
func (u *BackupRepo) SyncAll(data []model.BackupAccount) error {
168168
tx := global.DB.Begin()
169-
if err := tx.Where("is_public = ?", 1).Delete(&model.BackupAccount{}).Error; err != nil {
170-
tx.Rollback()
171-
return err
169+
var oldAccounts []model.BackupAccount
170+
_ = tx.Where("is_public = ?", 1).Find(&oldAccounts).Error
171+
oldAccountMap := make(map[string]uint)
172+
for _, item := range oldAccounts {
173+
oldAccountMap[item.Name] = item.ID
172174
}
173-
if err := tx.Model(model.BackupAccount{}).Save(&data).Error; err != nil {
174-
tx.Rollback()
175-
return err
175+
for _, item := range data {
176+
if val, ok := oldAccountMap[item.Name]; ok {
177+
item.ID = val
178+
delete(oldAccountMap, item.Name)
179+
} else {
180+
item.ID = 0
181+
}
182+
if err := tx.Model(model.BackupAccount{}).Where("id = ?", item.ID).Save(&item).Error; err != nil {
183+
tx.Rollback()
184+
return err
185+
}
186+
}
187+
for _, val := range oldAccountMap {
188+
if err := tx.Where("id = ?", val).Delete(&model.BackupAccount{}).Error; err != nil {
189+
tx.Rollback()
190+
return err
191+
}
176192
}
177193
tx.Commit()
178194
return nil

agent/init/migration/migrations/init.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ var InitSetting = &gormigrate.Migration{
101101
return err
102102
}
103103

104-
if err := tx.Create(&model.Setting{Key: "EncryptKey", Value: common.RandStr(16)}).Error; err != nil {
104+
if err := tx.Create(&model.Setting{Key: "EncryptKey", Value: global.CONF.Base.EncryptKey}).Error; err != nil {
105105
return err
106106
}
107107
if err := tx.Create(&model.Setting{Key: "SystemIP", Value: ""}).Error; err != nil {

frontend/src/views/setting/backup-account/index.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<template>
2-
<div>
2+
<div v-loading="loading">
33
<LayoutContent :title="$t('setting.backupAccount')">
44
<template #leftToolBar>
55
<el-button type="primary" @click="onOpenDialog('create')">

0 commit comments

Comments
 (0)