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

Method Backup

agent/utils/postgresql/client/local.go:130–147  ·  view source on GitHub ↗
(info BackupInfo)

Source from the content-addressed store, hash-verified

128}
129
130func (r *Local) Backup(info BackupInfo) error {
131 fileOp := files.NewFileOp()
132 if !fileOp.Stat(info.TargetDir) {
133 if err := os.MkdirAll(info.TargetDir, os.ModePerm); err != nil {
134 return fmt.Errorf("mkdir %s failed, err: %v", info.TargetDir, err)
135 }
136 }
137 global.LOG.Infof("start to pg_dump | gzip > %s.gzip", info.TargetDir+"/"+info.FileName)
138
139 cmdMgr := cmd.NewCommandMgr()
140 if _, err := cmdMgr.RunPipeToFile(path.Join(info.TargetDir, info.FileName),
141 cmd.PipeCommand{Name: "docker", Args: []string{"exec", "-i", "-e", "PGPASSWORD=" + r.Password, r.ContainerName, "pg_dump", "-F", "c", "-U", r.Username, "-d", info.Name}},
142 cmd.PipeCommand{Name: "gzip", Args: []string{"-cf"}},
143 ); err != nil {
144 return fmt.Errorf("handle backup database failed, err: %v", err)
145 }
146 return nil
147}
148
149func (r *Local) Recover(info RecoverInfo) error {
150 fi, _ := os.Open(info.SourceFile)

Callers

nothing calls this directly

Calls 3

StatMethod · 0.95
MkdirAllMethod · 0.80
RunPipeToFileMethod · 0.45

Tested by

no test coverage detected