Skip to content

Changelog

All notable changes to pg will be documented in this file.

[1.1.0] - 2025-08-12

✨ Enhanced User Experience

New Features:

  • Per-command help system - pg <command> help shows command-specific help and available subcommands (e.g., pg dump help)
  • Man page support - comprehensive manual accessible via man pg
  • PostgreSQL License identification - explicit license mention in documentation and license file
  • Simplified logging system - streamlined verbosity with --pg-verbose flag and PG_VERBOSE environment variable

Improvements:

  • Command naming consistency - alias pg import created pg dump restore
  • Command naming consistency - alias pg export db|all created pg dump db|all

Documentation:

  • Fixed "Connection Priority" section in basic usage documentation
  • Enhanced license clarity across all project files

Technical Enhancements:

  • Improved error detection - script now fails fast on undefined variables and command failures
  • Better pipeline error handling - all commands in pipelines now properly report failures
  • Conflict-free verbosity - logging flags won't interfere with underlying PostgreSQL tool options
  • Flag conflict resolution - resolved --dry-run conflict with pg_combinebackup using --pg-dry-run
  • Package installation - automating package creation for deb and rpm

[1.0.0] - 2025-08-05

🎉 Initial Release

Core Features:

  • Unified interface for all PostgreSQL client tools
  • Service file support (-s flag) for elegant connection management
  • Multiple connection methods (service files, connection strings, individual flags)
  • Consistent command structure across all PostgreSQL tools
  • Zero dependencies - pure bash implementation

Supported Tools:

  • Query: psql (interactive terminal)
  • Dump: pg_dump, pg_dumpall, pg_restore (logical exports/imports)
  • Backup: pg_basebackup, pg_combinebackup, pg_verifybackup (physical backups)
  • Maintenance: vacuumdb, reindexdb, clusterdb, pg_amcheck
  • Management: createdb, dropdb, createuser, dropuser
  • Streaming: pg_receivewal, pg_recvlogical
  • Utilities: pgbench, pg_isready, pg_config, ecpg

Connection Options:

  • -c, --connection-string - LibPQ connection strings
  • -s, --service - Service file entries (recommended)
  • -h, --host - Database host
  • -p, --port - Database port
  • -d, --database - Database name
  • -u, --user - Username

General Features:

  • Dry run mode (-n, --dry-run) - preview commands without execution
  • Logging system with 5 levels (quiet, error, warning, info, debug)
  • Help integration - pg <command> <subcommand> --help shows PostgreSQL tool help
  • Argument preservation - proper quoting and escaping for complex arguments
  • Environment variable support - respects standard PostgreSQL variables

Smart Behaviors:

  • Connection method enforcement - prevents mixing incompatible options
  • Flag conflict resolution - handles PostgreSQL tool flag conflicts
  • Argument order validation - ensures connection options come before tool options
  • Help bypass - --help arguments skip connection requirements

Error Handling:

  • Connection validation with clear error messages
  • Command validation with usage hints
  • Exit code preservation from underlying PostgreSQL tools

The format is based on Keep a Changelog.