Documentation
¶
Index ¶
- func BuildCommands(outDir string, commandBuilder CommandBuilder, targets Targets, dump bool) ([]string, error)
- func DumpCommand(t Target) string
- func PartialCopyWithoutExtensions(dst io.Writer, src io.ReadSeeker, progressFn func(int64)) (int64, error)
- func RestoreCommand(t Target) string
- type CommandBuilder
- type Output
- type PGCommand
- type Target
- type Targets
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BuildCommands ¶
func BuildCommands(outDir string, commandBuilder CommandBuilder, targets Targets, dump bool) ([]string, error)
BuildCommands generates commands that output Postgres dumps and sends them to predefined files for each target database.
func DumpCommand ¶
DumpCommand generates a pg_dump command that can be used for on-prem-to-Cloud migrations.
func PartialCopyWithoutExtensions ¶
func PartialCopyWithoutExtensions(dst io.Writer, src io.ReadSeeker, progressFn func(int64)) (int64, error)
PartialCopyWithoutExtensions will perform a partial copy of a SQL database dump from src to dst while commenting out EXTENSIONs-related statements. When it determines there are no more EXTENSIONs-related statements, it will return, resetting src to the position of the last contents written to dst.
This is needed for import to Google Cloud Storage, which does not like many EXTENSION statements. For more details, see https://cloud.google.com/sql/docs/postgres/import-export/import-export-dmp
Filtering requires reading entire lines into memory - this can be a very expensive operation, so when filtering is complete the more efficient io.Copy should be used to perform the remainder of the copy from src to dst.
func RestoreCommand ¶
RestoreCommand generates a psql command that can be used for migrations.
Types ¶
type CommandBuilder ¶
type Target ¶
type Target struct { // Target is the DSN of the database deployment: // // - in docker, the name of the database container, e.g. pgsql, codeintel-db, codeinsights-db // - in k8s, the name of the deployment or statefulset, e.g. deploy/pgsql, sts/pgsql // - in plain pg_dump, the server host or socket directory Target string `yaml:"target"` DBName string `yaml:"dbname"` Username string `yaml:"username"` // Only include password if non-sensitive Password string `yaml:"password"` }
Target represents a database for pg_dump to export.