数据库某些表可以手工清理

This commit is contained in:
GoEdgeLab
2021-01-19 16:14:09 +08:00
parent 14fc3d0659
commit 600caad2f8
8 changed files with 176 additions and 3 deletions

View File

@@ -1,6 +1,12 @@
package profile
import "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils"
import (
"github.com/TeaOSLab/EdgeAdmin/internal/utils/numberutils"
"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils"
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
"github.com/iwind/TeaGo/actions"
"github.com/iwind/TeaGo/maps"
)
type CleanAction struct {
actionutils.ParentAction
@@ -13,3 +19,30 @@ func (this *CleanAction) Init() {
func (this *CleanAction) RunGet(params struct{}) {
this.Show()
}
func (this *CleanAction) RunPost(params struct {
Must *actions.Must
}) {
tablesResp, err := this.RPC().DBRPC().FindAllDBTables(this.AdminContext(), &pb.FindAllDBTablesRequest{})
if err != nil {
this.ErrorPage(err)
return
}
tableMaps := []maps.Map{}
for _, table := range tablesResp.DbTables {
if !table.IsBaseTable || (!table.CanClean && !table.CanDelete) {
continue
}
tableMaps = append(tableMaps, maps.Map{
"name": table.Name,
"rows": table.Rows,
"size": numberutils.FormatBytes(table.DataLength + table.IndexLength),
"canDelete": table.CanDelete,
"canClean": table.CanClean,
"comment": table.Comment,
})
}
this.Data["tables"] = tableMaps
this.Success()
}

View File

@@ -0,0 +1,23 @@
package profile
import (
"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils"
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
)
type DeleteTableAction struct {
actionutils.ParentAction
}
func (this *DeleteTableAction) RunPost(params struct {
Table string
}) {
defer this.CreateLogInfo("删除数据表 %s", params.Table)
_, err := this.RPC().DBRPC().DeleteDBTable(this.AdminContext(), &pb.DeleteDBTableRequest{DbTable: params.Table})
if err != nil {
this.ErrorPage(err)
return
}
this.Success()
}

View File

@@ -17,6 +17,8 @@ func init() {
GetPost("/update", new(UpdateAction)).
GetPost("/clean", new(CleanAction)).
GetPost("/cleanSetting", new(CleanSettingAction)).
GetPost("/truncateTable", new(TruncateTableAction)).
GetPost("/deleteTable", new(DeleteTableAction)).
EndAll()
})
}

View File

@@ -0,0 +1,23 @@
package profile
import (
"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils"
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
)
type TruncateTableAction struct {
actionutils.ParentAction
}
func (this *TruncateTableAction) RunPost(params struct {
Table string
}) {
defer this.CreateLogInfo("清空数据表 %s 数据", params.Table)
_, err := this.RPC().DBRPC().TruncateDBTable(this.AdminContext(), &pb.TruncateDBTableRequest{DbTable: params.Table})
if err != nil {
this.ErrorPage(err)
return
}
this.Success()
}