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

Method Recover

agent/utils/postgresql/client/local.go:149–179  ·  view source on GitHub ↗
(info RecoverInfo)

Source from the content-addressed store, hash-verified

147}
148
149func (r *Local) Recover(info RecoverInfo) error {
150 fi, _ := os.Open(info.SourceFile)
151 defer fi.Close()
152
153 cmd := exec.Command("docker", "exec", "-i", "-e", "PGPASSWORD="+r.Password, r.ContainerName,
154 "pg_restore", "-F", "c", "-c", "--if-exists", "--no-owner", "-U", r.Username, "-d", info.Name,
155 )
156 if strings.HasSuffix(info.SourceFile, ".gz") {
157 gzipFile, err := os.Open(info.SourceFile)
158 if err != nil {
159 return err
160 }
161 defer gzipFile.Close()
162 gzipReader, err := gzip.NewReader(gzipFile)
163 if err != nil {
164 return err
165 }
166 defer gzipReader.Close()
167 cmd.Stdin = gzipReader
168 } else {
169 cmd.Stdin = fi
170 }
171 stdout, err := cmd.CombinedOutput()
172 if err != nil {
173 if strings.HasPrefix(string(stdout), "ERROR ") {
174 return errors.New(string(stdout))
175 }
176 return err
177 }
178 return nil
179}
180
181func (r *Local) SyncDB() ([]SyncDBInfo, error) {
182 var datas []SyncDBInfo

Callers

nothing calls this directly

Calls 1

CloseMethod · 0.65

Tested by

no test coverage detected