The pig CLI provides a comprehensive toolkit for managing PostgreSQL installations, extensions, repositories, and extension builds from source. Use pig help <command> to view command documentation.
pig context: output an environment context snapshot for humans and agents
pig status / update / version: inspect environment status, upgrade pig, and print version information
Overview
pig - The Linux package manager for PostgreSQL
Usage:
pig [command]Examples:
pig repo add -ru # overwrite existing repo and update cache pig install pg18 # install PostgreSQL 18 PGDG packages pig install pg_duckdb # install a specific PostgreSQL extension pig install pgactive -v 18# install extension for a specific PG version visit https://pigsty.io/ext/ for details
PostgreSQL Extension Manager
build Build Postgres extensions
ext Manage PostgreSQL extensions (pgext) repo Manage Linux software repo (apt/dnf)Pigsty Management Commands
context Show environment context snapshot
do Run admin tasks
inventory Inspect, edit, validate, check, and exchange Pigsty Inventory
patroni Run patronictl with Pigsty service and config helpers (alias: pt) pg_exporter Manage pg_exporter and metrics (alias: pe) pgbackrest Manage pgBackRest backup and restore (alias: pb) pitr Point-in-time recovery using pgBackRest
postgres Manage local PostgreSQL server and databases (alias: pg) sty Manage Pigsty installation and controller services
Additional Commands:
completion Generate shell completion scripts
help Help about any command install Install packages using native package manager
status Show environment status
update Upgrade pig itself
version Show pig version info
Flags:
--debug enable debug mode
-h, --help helpfor pig
-H, --home string Pigsty home path
-i, --inventory string config inventory path
--log-level string log level: debug, info, warn, error, fatal, panic (default "info") --log-path string log file path, terminal by default
-o, --output string output format: text, yaml, json, json-pretty (default "text")Use "pig [command] --help"for more information about a command.
pig repo
Manage APT/YUM repositories for PostgreSQL packages. See pig repo for details.
pig repo list # list available repositoriespig repo info pgdg # show repository detailspig repo status # check current repository statuspig repo add pgdg pigsty -u # add repositoriespig repo rm old-repo # remove repositorypig repo update # update package cachepig repo create /www/pigsty # create local repositorypig repo cache # create offline packagepig repo boot # bootstrap from offline package
pig ext
Manage PostgreSQL extensions and kernel packages. See pig ext for details.
pig ext list duck # search extensionspig ext info pg_duckdb # extension detailspig ext status # show installed extensionspig ext add pg_duckdb -y # install extensionpig ext rm old_extension # remove extensionpig ext update # update extensionpig ext scan # scan installed extensionspig ext import pg_duckdb # download for offline usepig ext link 17# link PG version into PATHpig ext reload # refresh extension catalog
pig build
Build PostgreSQL extensions from source. See pig build for details.
# Environment setuppig build spec # initialize build specspig build repo # configure repositoriespig build repo --beta # configure repositories and add PostgreSQL 19 beta repopig build tool # install build toolspig build tool --beta # install build tools plus PG19 beta build packagespig build rust -y # force reinstall Rust (default does not reinstall)pig build rust -m # use China mirror mode and write Cargo mirror configpig build pgrx # install PGRX frameworkpig build pgrx -b # include PostgreSQL 19 beta pg_config during auto-detection# Build extensionspig build pkg citus # complete build pipeline = get + dep + extpig build get citus # download sourcepig build dep citus # install dependenciespig build ext citus # build package
pig install
Install packages through the system’s native package manager and translate PostgreSQL kernel, extension, and common aliases into package names. Use -n/--no-translation when you need to pass raw system package names directly.
pig install pg_duckdb # install extension and translate package namepig install pg18 # install PostgreSQL 18 kernel package grouppig install nginx htop vim # install multiple system packagespig install unknown-package -n # disable translation and use raw package namepig install pg18 --plan # preview installation planpig install pg_vector -y # auto-confirm installation
pig sty
Install the Pigsty distribution. See pig sty for details.
pig sty init # install Pigsty to ~/pigstypig sty boot # install Ansible prerequisitespig sty conf # generate configurationpig sty deploy # run deployment playbookpig sty list # list available Pigsty releasespig sty get 4.5.0 # download a Pigsty releasepig sty grafana list # manage Grafana dashboards (info/list/boot/load/init/dump/clean/lang/style)
pig inventory
Inspect, edit, validate, check, and exchange the Pigsty inventory (pigsty.yml) with the
CMDB. Root-level command group with alias inv; see pig inventory
for details. (New in v1.6.0)
pig inventory status # inspect the active inventory sourcepig inventory list # list inventory topology and value kindspig inventory show # show verbatim inventory YAML (may contain secrets)pig inventory edit # edit the inventory (or one fragment) in $EDITORpig inventory validate # validate one complete static Pigsty inventorypig inventory check # check inventory, controller, and target readinesspig inventory diff other.yml # compare declarations without emitting valuespig inventory cmdb check # exchange with the PostgreSQL CMDB (experimental)
pig do
Run Pigsty administration tasks through the corresponding Ansible playbooks.
pig do pgsql-add <cls> [ip...]# add cluster or instancespig do pgsql-rm <cls> [ip...]# remove cluster or instancespig do pgsql-db <cls> <dbname> # create or update databasepig do pgsql-user <cls> <username> # create or update userpig do pgsql-ext <cls> [ext...]# install extensionspig do node-pkg <sel> [pkg...]# install node packages
pig pe
Access PostgreSQL monitoring metrics exposed by pg_exporter. The default endpoint is 127.0.0.1:9630.
pig pe list # list available metric typespig pe get # get all pg_ prefixed metricspig pe stat # show exporter statisticspig pe reload # reload pg_exporter configurationpig pe --host 127.0.0.1 -p 9630 get
pig context
Output an environment context snapshot covering host, PostgreSQL, Patroni, pgBackRest, and installed extensions. This command is useful for troubleshooting and for automation scripts that need a quick view of the current node.
pig context # text outputpig context -o json # JSON outputpig context -m postgres # only output PostgreSQL module (host included by default)pig context -m postgres,!host # exclude host module
pig pg
Manage the local PostgreSQL server. See pig pg for details.
pig pg init # initialize data directorypig pg start # start PostgreSQLpig pg stop # stop PostgreSQLpig pg status # check statuspig pg psql mydb # connect to databasepig pg ps # show current connectionspig pg vacuum mydb # vacuum databasepig pg tune -p olap # generate tuned parameterspig pg fork dev # create a local one-off physical forkpig pg fork list # list local forkspig pg log tail # tail logs in real time
pig pt
Run patronictl transparently to manage Patroni HA clusters. See pig pt for details.
pig pt list pg-meta # list cluster members (native passthrough)pig pt show-config pg-meta # show cluster dynamic config (native passthrough)pig pt setttl=60# local sugar: update Patroni/PG settingspig pt restart pg-test --pending # apply pending restarts (native passthrough)pig pt status # local: combined service and cluster statuspig pt log -f # local: tail logs in real time
pig pb
Manage pgBackRest backup and restore. See pig pb for details.
pig pb info # show backup informationpig pb ls # list all backupspig pb backup # create backuppig pb backup full # full backuppig pb restore -d # restore to latestpig pb restore -t "2025-01-01"# restore to a specific timepig pb log tail # tail logs in real time
pig pitr
Run orchestrated point-in-time recovery (PITR). See pig pitr for details.
pig pitr -d # recover to latest datapig pitr -t "2025-01-01 12:00:00+08"# recover to a specific timepig pitr -I # recover to backup consistency pointpig pitr -d --plan # show execution plan without runningpig pitr -d -y # skip confirmation for automation
Helper Commands
pig status # show current environment statuspig status -o json # structured status outputpig update # upgrade pig itself to the latest versionpig update -m # upgrade using the pigsty.cc mirrorpig update -v X.Y.Z # upgrade to a version published by the configured repositorypig version # show pig version informationpig version -o json # structured version output