Skip to content
Tags give the ability to mark specific points in history as being important
  • v0.13.0
    pglift v0.13.0
    
        Fix or adjust Ansible modules DOCUMENTATION block
        Improve log message from databases.run()
        Drop CLI live displayer replaced by stderr logger
        Log system commands at DEBUG level
        Check that the target instance does not exist during an upgrade
        Replace positional arguments by --name/--version in 'instance upgrade'
        Require pgtoolkit 0.18.0
        Use LogRecord.getMessage() instead of possibly unset 'message' attribute
        Add a hidden 'pgbackrest' proxy command
        Call pgbackrest restore with --delta
        Use rockylinux instead of centos in CI
        Allow to enable/disable data_checksums on existing instance
        Allow to override data_checksums per instance
        Reload instance using pg_reload_conf()
        Adjust Ansible tutorial introduction
        Mention contributing documentation in README
        Document minimal requirements for contribution
        Add details on the test suite in dev documentation
        Improve documentation of 'instance upgrade' command
        Document runtime dependencies
        Document how to clone the repo in contributing section
    
  • v0.12.0
    pglift v0.12.0
    
        Add 'instance logs' command and API to access PostgreSQL instance logs
        Add dedicated role "replrole" for replication
        Add 'instance promote' command
        Encrypt passwords using libpq
        Show commented parameters in 'instance config show [PARAM]'
        Prompt to restart the server when altering an instance
        Configure Postgres logging_collector to 'stderr'
        Add a --quiet flag to main CLI
        Add a hidden --settings option
        Add an (internal) 'site-settings' command
        Forbid many meaningless operations on standby instances
        Fix 'instance config {remove,set}' commands to preserve existing parameters
        Forbid to upgrade an instance to same name and same version
        Reduce the default value of effective_cache_size
        Do not try to start postgres_exporter if it is not enabled for an instance
        Display information messages in 'instance restore' and 'instance backup' commands
        Lookup for site settings in /etc/pglift or $XDG_CONFIG_DIR/pglift
        Document postgresql authentication methods
        Document standby setup
        Document how to override systemd units
    
  • v0.11.0
    pglift v0.11.0
    
        Document database backup/restore
        Document how to use psql and libpq environment
        Add a how-to section about database maintenance in documentation
        Move installation documentation into the tutorials section
        Use dedicated role for backup
        Allow to create SUPERUSER roles
        Handle instances without postgres_exporter
        Use psycopg 3
        Catch psycopg OperationalError in CLI
    
  • v0.10.0
    pglift v0.10.0
    
        Add 'instance env'
        Add 'instance exec' command
        Drop 'instance shell' command, replaced by 'instance exec'
        Drop 'database backup' command, replaced by 'instance exec'
    
  • v0.9.0
    pglift v0.9.0
    
        Guess instance version when not specified in CLI
        Fix 'instance alter' command arguments
        Allow to configure a "password_command" to set PGPASSWORD
        Honor pgpass setting when upgrading an instance
        Add backup for database
        Also add stdout on CommandError in CLI output
    
  • v0.8.0
    pglift v0.8.0
    
        Implement instance upgrade with pg_upgrade
        Make super-user role password configurable at instance creation
        Add support for running systemctl in --system mode
        Add 'instance config [show,set,remove,edit]' commands
        Add support for Postgres 14
        Add a CLI option to show program version
        Add a --log-file command line option
        Let all commands accept a <version>/<name> argument as instance
        Improve secrets handling and security in Ansible tutorial
        Create PostgreSQL socket directory if absent
        Unconditionally pass 'passfile' parameter to libpq
        Improve CLI live display, tables and messages, now including status and grouping information
        Improve error handling and streams usage in 'postgres' script
        Rename systemd unit templates
        Document systemd setup and operations
        Document how PostgreSQL authentication works
    
  • v0.7.0
    pglift v0.7.0
    
        Log to stderr when starting postgres with systemd
        Handle absence of satellite components (e.g. pgbackrest) in operations and API
        Run tests with Debian bullseye and CentOS 8 in CI
        Add commands, Ansible module and Python API to manage a standalone Prometheus postgres_exporter service
        Stop the instance when dropping to avoid dangling processes
        Make 'instance stop' a no-op if instance is not running
        Drop --purge option from 'instance backup' command
        Set reasonable retention values for pgbackrest
        Reorganize the documentation into "installation" and "operations" main sections
        Complement the documentation with examples for all interfaces (CLI, Ansible) in all operation topics
        Drop settings unrelated to PITR from pgbackrest.conf
        Allow to start an instance in the foreground
        Allow to start postgres_exporter in foreground
        Move CLI runtime dependency into an extra requires section
        Improve logging in the CLI, adding colors, making log file path configurable, adjusting formatting
    
  • v0.6.0
    pglift v0.6.0
    
        Keep newline, except for JSON, in CLI output
        Fix validator of postgresql.default_version setting
        Define a complete exception hierarchy in the API
        Handle known errors in CLI
        Log uncaught exceptions in a temporary file for debugging in CLI
        Introduce a "database run" command
        Configure lock-path for pgbackrest
        Configure logger for better composability
        Let systemd unit path be configurable
        Do not overwrite systemd units during installation
        Add logging to installation step
        Do not use systemd by default
        Add 'database privileges' command
        Add 'role privileges' command
        Add 'instance privileges' command
        Add a 'privileges' module
        Add 'database list' command
        Log run commands
        Log subprocesses stderr as debug level
        Add some logging during instance {start,stop,restart,reload}
        Handle postgres_exporter {start,stop} without systemd
        Only use syslog when systemd is available for postgres_exporter
        Add 'postgres_exporter {start,stop}' commands
        Run test suite against postgresql 10 in gitlab CI
        Set "spoolpath" during pgbackrest setup
        Set pgbackrest retention policy in configuration
        Call 'pgbackrest backup' with --start-fast by default
        Handle streaming replication slots
        Fix pglift instance init --help example in cli tutorial
        Add "instance restore" command
        Add pgbackrest.iter_backups() to list available backups
        Add "instance shell" command
        Use PostgreSQL 13 in CI
        Use bullseye repository in CI
    
  • v0.5.1
    pglift v0.5.1
    
        Update documentation links in README
    
  • v0.5.0
    pglift v0.5.0
    
        Write a more complete tutorial on CLI
        Move cli and ansible docs into a "tutorials" section
        Add a "installation" documentation page
        Add missing functions in API documentation
        Add "alter" command for instance, role and database objects
        Implement "alter" for database objects
        Add a "owner" field to Database model
        Check security with bandit
        Only actually log the program name in cmd.run()
        Provide shell completion scripts
        Prompt for secret options (e.g. password) in the CLI
    
  • v0.4.0
    pglift v0.4.0
    
        Only sort pgpass when adding a new entry
        Document PostgreSQLInstance class
        Extract postgresql config read into conf module
        Add basic support for database objects, with CLI and Ansible modules
        Add "inherit", "login", "validity", "connection_limit" and "in_roles" fields to Role model
        Move <action>-instance commands as "instance <action>"
        Inspect role completely in roles.describe()
        Add roles.alter() and use it in roles.apply()
        Handle streaming replication
    
  • v0.3.0
    pglift v0.3.0
    
        Handle pgpass update upon instance port change
        Run systemctl daemon-reload after change in unit files
        Don't install systemd unit files when service_manager is not systemd
        Add "role create" command
        Add a "role" Ansible module
        Fix possible UnboundLocalError in site-configure command
        Do a full system lookup when retrieving an instance or listing instances
        Improve error handling in "backup" script
        Add logic to inspect postgres_exporter configuration
        Catch interface model validation errors in Ansible module
        Use instance.apply() in Ansible "instance" module
        Build Ansible modules argspec from manifest models
        Move "model" and "manifest" modules under a "models" package
    
  • v0.2.0
    pglift v0.2.0
    
        Create a collection to distribute our Ansible modules
        Rename the "instance" Ansible module
        Validate user supplied PostgreSQL version from manifest
        Make percent values for PostgreSQL configuration items relative to total memory
        Write "site" PostgreSQL configuration to a dedicated file
        Add a --log-level option to CLI
        Log exceptions while running tasks
        Allow site-wise settings definition through a YAML file
        Rebuild test docker image only when it's required
        Catch InstanceNotFound and other exceptions in CLI
        Require psycopg2 for installation
        Fail fast in 'describe' and 'drop' actions
        Search /usr/pgsql-{version} for bindir of PostgreSQL as well
        Add "instance init" command
        Configure 'unix_socket_directories' in site settings
        Move "install" command to main cli as "site-configure"
    
  • v0.1.0
    pglift v0.1.0