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

Method SyncDB

agent/utils/postgresql/client/remote.go:327–351  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

325}
326
327func (r *Remote) SyncDB() ([]SyncDBInfo, error) {
328 ctx, cancel := context.WithTimeout(context.Background(), 300*time.Second)
329 defer cancel()
330
331 var datas []SyncDBInfo
332 rows, err := r.Client.Query("SELECT datname FROM pg_database;")
333 if err != nil {
334 return nil, err
335 }
336 defer rows.Close()
337 for rows.Next() {
338 var dbName string
339 if err := rows.Scan(&dbName); err != nil {
340 continue
341 }
342 if len(dbName) == 0 || dbName == "template1" || dbName == "template0" || dbName == r.User {
343 continue
344 }
345 datas = append(datas, SyncDBInfo{Name: dbName, From: r.From, PostgresqlName: r.Database})
346 }
347 if errors.Is(ctx.Err(), context.DeadlineExceeded) {
348 return nil, buserr.New("ErrExecTimeOut")
349 }
350 return datas, nil
351}
352
353func (r *Remote) Close() {
354 _ = r.Client.Close()

Callers

nothing calls this directly

Calls 4

NextMethod · 0.80
IsMethod · 0.80
CloseMethod · 0.65
ScanMethod · 0.65

Tested by

no test coverage detected