Skip to main content

Simple package for backups and recovery

Project description

PatronX

PatronX is a small toolkit for managing PostgreSQL backups and point‑in‑time restores. It is written in typed Python and exposes a concise command‑line interface. Backups can be scheduled, diffed and off‑loaded to S3 with a minimal setup.

codecov Test Docker publish PyPI publish PyPI

Docker Tags are available on Docker Hub:

Utilities

Command Purpose
patronx backup create a new dump
patronx restore restore a dump into the database
patronx list list all dumps in BACKUP_DIR
patronx diff diff latest dump against the database
patronx check-db verify database connectivity
patronx start run scheduled backup/cleanup loops and listen for healthcheck
patronx enqueue-backup queue a backup job immediately
patronx enqueue-cleanup queue cleanup of old dumps

backup and enqueue-backup upload the dumps to s3 if s3 is configured.

Configuration

The following environment variables control how PatronX connects to the database and schedules jobs:

  • PGHOST – database host (default localhost)
  • PGPORT – database port (default 5432)
  • PGUSER – authentication user (default test_user)
  • PGPASSWORD – password for PGUSER
  • PGDATABASE – database name (default test_db)
  • BACKUP_DIR – where dumps are stored (default ./backups)
  • BACKUP_CRON – cron expression for automated backups
  • CLEANUP_CRON – cron expression for removing old dumps
  • RETENTION_DAYS – how long to keep dumps (default 30)
  • S3_BUCKET – optional bucket for S3 uploads
  • AMQP_URL – RabbitMQ connection string
  • LOGSTASH_HOST – Logstash host (default logstash)
  • LOGSTASH_PORT – Logstash port (default 5000)
  • HEALTH_PORT – port for the built‑in health server (default 7775)

Docs

For guidance on setting up an IAM user with minimum access for S3 uploads, see docs/aws-user-creation.md.

Development

Install uv:

pip install uv
pytest                   # run tests
ruff check . --fix       # lint
isort .                  # format imports

generate requirements.txt

uv pip install pip-tools
uv pip-compile --output-file=requirements.txt pyproject.toml 

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

patronx-2.4.2.tar.gz (18.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

patronx-2.4.2-py3-none-any.whl (15.0 kB view details)

Uploaded Python 3

File details

Details for the file patronx-2.4.2.tar.gz.

File metadata

  • Download URL: patronx-2.4.2.tar.gz
  • Upload date:
  • Size: 18.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for patronx-2.4.2.tar.gz
Algorithm Hash digest
SHA256 5c7c631236735798ab9c2172687629c538e3af67336bd79660122ed3b8520955
MD5 632e3ab8e941a7032eed9099f60ba1ca
BLAKE2b-256 b5c0ac6b4b2452709121840e50632cff3c3ef3798c05236240a732b7f546b4b3

See more details on using hashes here.

Provenance

The following attestation bundles were made for patronx-2.4.2.tar.gz:

Publisher: cd-publish-to-pypi.yml on xdanielsb/patronx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file patronx-2.4.2-py3-none-any.whl.

File metadata

  • Download URL: patronx-2.4.2-py3-none-any.whl
  • Upload date:
  • Size: 15.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for patronx-2.4.2-py3-none-any.whl
Algorithm Hash digest
SHA256 95de5e67ea4e1fbbb7c782eb6eac8fde16d943bac0eab50d717948183a5553e4
MD5 4f8d09604831e9567f946ba256843348
BLAKE2b-256 3fb17fb155d5f83373fdda8b688e8b1a24b435f87a490d1bcd46208857e18454

See more details on using hashes here.

Provenance

The following attestation bundles were made for patronx-2.4.2-py3-none-any.whl:

Publisher: cd-publish-to-pypi.yml on xdanielsb/patronx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page