(info BackupInfo)
| 128 | } |
| 129 | |
| 130 | func (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 | |
| 149 | func (r *Local) Recover(info RecoverInfo) error { |
| 150 | fi, _ := os.Open(info.SourceFile) |
nothing calls this directly
no test coverage detected