Command Reference¶
Complete reference for all pg commands with usage, examples, and flag conflicts.
Command Structure¶
pg options must come before tool options. pg options are connection options and general options.
Connection Options¶
| Flag | Long Form | Description |
|---|---|---|
-c | --pg-connection-string | LibPQ connection string |
-s | --pg-service | Service name (pg_service.conf) |
-h | --pg-host | Hostname or socket path |
-p | --pg-port | Port number |
-d | --pg-database | Database name (name only, not connection string) |
-u | --pg-user | Username |
General Options¶
| Long Form | Description |
|---|---|
--pg-dry-run | Show command without executing |
--pg-verbose | Set verbosity for debugging |
Flag Conflict Workarounds¶
When PostgreSQL tool flags conflict with pg's options, you have two solutions:
1. Use Long Form (Recommended)¶
# ❌ Conflicts
pg query -s production -c "select version();"
# ✅ Use long form
pg query -s production --command "select version();"
# ❌ Conflicts
pg query -c "service=production
# ✅ Use long form
pg query --pg-connection-string "service=production"
2. Use Non-Conflicting Flag First¶
Since pg stops parsing after encountering unknown flags, you can use a non-conflicting tool flag first:
# ❌ Conflicts (-c gets interpreted as connection string)
pg query -s production -c "select version();"
# ✅ Use non-conflicting flag first, then conflicting ones
pg query -s production --echo-queries -c "select version();"
This works because --echo-queries is unknown to pg, so everything after it gets passed to psql.
Query¶
Aliases: run, exec
Usage: pg query [pg-options] [psql-options]
Examples:
pg query -s production
pg query -s production --command "select version();"
pg query -h localhost -u admin -d myapp
Conflicting Options:
-c→ use--command(to run SQL commands)-n→ use--no-readline(disable readline)-s→ use--single-step(single-step mode)
Dump¶
dump db¶
Aliases: export db
Usage: pg dump db [pg-options] [pg_dump-options]
Examples:
Conflicting Options:
-c→ use--clean(clean before restore)-n→ use--schema(dump specific schema)
dump all¶
Aliases: export all
Usage: pg dump all [pg-options] [pg_dumpall-options]
Examples:
Conflicting Options:
-c→ use--clean(clean before restore)-s→ use--schema-only(schema only)
dump restore¶
Aliases: import
Usage: pg dump restore [pg-options] input-file [pg_restore-options]
Examples:
Conflicting Options:
-c→ use--clean(clean before restore)-n→ use--schema(restore specific schema)-s→ use--schema-only(schema only)
Backup¶
backup base¶
Aliases: none
Usage: pg backup base [pg-options] [pg_basebackup-options]
Examples:
Conflicting Options: None
backup combine¶
Aliases: none
Usage: pg backup combine [pg-options] [pg_combinebackup-options]
Examples:
Conflicting Options:
-d→ use--debug(debug mode)-n→ CONFLICT: Bothpgand tool use--dry-run
📖 pg_combinebackup documentation
backup verify¶
Aliases: none
Usage: pg backup verify [pg-options] [pg_verifybackup-options]
Examples:
Conflicting Options:
-n→ use--no-parse-wal(skip WAL parsing)-s→ use--skip-checksums(skip checksum verification)
📖 pg_verifybackup documentation
Maintain¶
maintain vacuum¶
Aliases: none
Usage: pg maintain vacuum [pg-options] [vacuumdb-options]
Examples:
Conflicting Options:
-n→ use--schema(vacuum specific schema)
maintain reindex¶
Aliases: none
Usage: pg maintain reindex [pg-options] [reindexdb-options]
Examples:
Conflicting Options:
-s→ use--system(reindex system catalogs)
maintain cluster¶
Aliases: none
Usage: pg maintain cluster [pg-options] [clusterdb-options]
Examples:
Conflicting Options: None
maintain check¶
Aliases: none
Usage: pg maintain check [pg-options] [pg_amcheck-options]
Examples:
Conflicting Options:
-s→ use--schema(check specific schema)
Create & Drop¶
create db¶
Aliases: none
Usage: pg create db [pg-options] database-name [createdb-options]
Examples:
Conflicting Options: None
create user¶
Aliases: none
Usage: pg create user [pg-options] username [createuser-options]
Examples:
Conflicting Options:
-c→ use--connection-limit(connection limit)-d→ use--createdb(can create databases)-s→ use--superuser(superuser privileges)
drop db¶
Aliases: none
Usage: pg drop db [pg-options] database-name [dropdb-options]
Examples:
Conflicting Options: None
drop user¶
Aliases: none
Usage: pg drop user [pg-options] username [dropuser-options]
Examples:
Conflicting Options: None
Stream¶
stream wal¶
Aliases: none
Usage: pg stream wal [pg-options] [pg_receivewal-options]
Examples:
Conflicting Options:
-n→ use--no-loop(exit after one WAL file)-s→ use--status-interval(status interval)
stream logical¶
Aliases: none
Usage: pg stream logical [pg-options] [pg_recvlogical-options]
Examples:
Conflicting Options:
-n→ use--no-loop(exit after one record)-s→ use--status-interval(status interval)
📖 pg_recvlogical documentation
Bench¶
Aliases: none
Usage: pg bench [pg-options] [pgbench-options]
Examples:
Conflicting Options:
-s→ use--scale(scale factor)-n→ use--no-vacuum(skip vacuum)
Info¶
info ready¶
Aliases: ready
Usage: pg info ready [pg-options] [pg_isready-options]
Examples:
Conflicting Options: None
info config¶
Aliases: none
Usage: pg info config [pg_config-options]
Examples:
Conflicting Options: None
Dev¶
Aliases: none
Usage: pg dev [pg-options] input-file [ecpg-options]
Examples:
Conflicting Options ⚠️¶
UNSOLVABLE CONFLICTS:
-c(compile only) - Conflicts with-c/--pg-connection-strings-h(parse header) - Conflicts with-h/--host
Workaround: Use a non-conflicting flag first (like -v).
Next: See PostgreSQL Tools Flags for complete flag compatibility tables.