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 server run scheduled backup/cleanup loops
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)

Docs

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

Development

pytest                   # run tests
ruff check . --fix       # lint
isort .                  # format imports
:
# generate requirements.txt
```bash
pip install pip-tools
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.1.0.tar.gz (15.8 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.1.0-py3-none-any.whl (13.3 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for patronx-2.1.0.tar.gz
Algorithm Hash digest
SHA256 4abbfd6e81221f43106349c5213d28eed960061df0d4cfdebc19e0c7af3ab4aa
MD5 902d8526798662fd5c26f28488e4fe3b
BLAKE2b-256 a3ba54fef7a8a5093b68cc6b4f1219312684f7b29be56b309ecee64ac4c22b75

See more details on using hashes here.

Provenance

The following attestation bundles were made for patronx-2.1.0.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.1.0-py3-none-any.whl.

File metadata

  • Download URL: patronx-2.1.0-py3-none-any.whl
  • Upload date:
  • Size: 13.3 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.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8f0d3c2a7771bad882b1731ea995d31ed53122f05dfc2213d9ca4fc6fd6b88d5
MD5 8ff21517a10c7cb7f4d15fd1f4350743
BLAKE2b-256 46c3a43cd28176f300be71ed26f6392d35be09233c9de6fb4fc9a4bafabaf85e

See more details on using hashes here.

Provenance

The following attestation bundles were made for patronx-2.1.0-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