MCPcopy Create free account
hub / github.com/1Panel-dev/1Panel / backupDatabaseWithTask

Function backupDatabaseWithTask

agent/app/service/backup_app.go:97–123  ·  view source on GitHub ↗
(parentTask *task.Task, resourceKey, tmpDir, name string, databaseID uint)

Source from the content-addressed store, hash-verified

95}
96
97func backupDatabaseWithTask(parentTask *task.Task, resourceKey, tmpDir, name string, databaseID uint) error {
98 switch resourceKey {
99 case constant.AppMysql, constant.AppMariaDB:
100 db, err := mysqlRepo.Get(repo.WithByID(databaseID))
101 if err != nil {
102 return err
103 }
104 parentTask.LogStart(task.GetTaskName(db.Name, task.TaskBackup, task.TaskScopeDatabase))
105 databaseHelper := DatabaseHelper{Database: db.MysqlName, DBType: resourceKey, Name: db.Name}
106 if err := handleMysqlBackup(databaseHelper, parentTask, 0, tmpDir, fmt.Sprintf("%s.sql.gz", name), "", ""); err != nil {
107 return err
108 }
109 parentTask.LogSuccess(task.GetTaskName(db.Name, task.TaskBackup, task.TaskScopeDatabase))
110 case constant.AppPostgresql:
111 db, err := postgresqlRepo.Get(repo.WithByID(databaseID))
112 if err != nil {
113 return err
114 }
115 parentTask.LogStart(task.GetTaskName(db.Name, task.TaskBackup, task.TaskScopeDatabase))
116 databaseHelper := DatabaseHelper{Database: db.PostgresqlName, DBType: resourceKey, Name: db.Name}
117 if err := handlePostgresqlBackup(databaseHelper, parentTask, 0, tmpDir, fmt.Sprintf("%s.sql.gz", name), "", ""); err != nil {
118 return err
119 }
120 parentTask.LogSuccess(task.GetTaskName(db.Name, task.TaskBackup, task.TaskScopeDatabase))
121 }
122 return nil
123}
124
125func handleAppBackup(install *model.AppInstall, parentTask *task.Task, recordID uint, backupDir, fileName, excludes, secret, taskID string) error {
126 var (

Callers 2

doWebsiteBackupFunction · 0.85
doAppBackupFunction · 0.85

Calls 6

handleMysqlBackupFunction · 0.85
handlePostgresqlBackupFunction · 0.85
GetMethod · 0.65
WithByIDMethod · 0.65
LogStartMethod · 0.45
LogSuccessMethod · 0.45

Tested by

no test coverage detected