Skip to main content
# pybackups-py

A python port of [pgbackups-archive](https://github.com/kjohnston/pgbackups-archive)
that helps in automating Heroku PGBackups and archiving them to Amazon S3.

# Overview

This package provides a python script `pgbackup` that will capture a Heroku
PGBackup, wait for it to complete, and then store it within the Amazon S3 bucket
you specify. Best way to use this package is to use heroku scheduler to schedule
this python script at any required durations and get automated offsite backups.
This project though can also be used as a library and can be used within
your own code. The `pgbackup` script can also be run
from command line to generate adhoc backups


This package doesn't interfere with or utilze automated backups, so feel free to
schedule those with the `pg:backups schedule` command as you desire.

# Installation

pip install -e pgbackups-py

# Usage

To use it with heroku scheduler:

#### Install Heroku Scheduler add-on

heroku addons:create scheduler

Setup an AWS IAM user, S3 bucket and policy
A good security measure would be to use a dedicated set of AWS credentials with
a security policy only allowing access to the bucket you're specifying. See this
Pro Tip on Assigning an AWS IAM user access to a single S3 bucket.

#### Configure Backups

The backups can either be configured by setting environment variables or by
passing arguments to the provided `pgbackup` script. On heroku environemnt
variables can be set as below

# Required
heroku config:add HEROKU_API_KEY="collaborator-api-key"
heroku config:add PGBACKUPS_APP="myapp"
heroku config:add PGBACKUPS_AWS_ACCESS_KEY_ID="XXX"
heroku config:add PGBACKUPS_AWS_SECRET_ACCESS_KEY="YYY"
heroku config:add PGBACKUPS_BUCKET="myapp-backups"

# Optional: If you wish to backup a database other than the one that
# DATABASE_URL points to, set this to the name of the variable for that
# database (useful for follower databases).
heroku config:add PGBACKUPS_DATABASE="HEROKU_POSTGRESQL_BLACK_URL"

The `pgbackup` script takes following options

-h, --help show this help message and exit
--app APP Heroku App for which backup needs to be performed
--api-key API_KEY API key for heroku
--db DB_NAME Name of Heroku database
--access-key ACCESS_KEY
AWS Access Key
--secret-key SECRET_KEY
AWS SECRET Key
--aws-bucket AWS_BUCKET
AWS S3 Bucket
--log-level {DEBUG,INFO,WARNING,ERROR,CRITICAL}
Log Level
--disable-logging Enable Logging
--log-name LOG_NAME Log Name
--storage-opts [STORAGE_OPTIONS [STORAGE_OPTIONS ...]]
set additional storage options as key=value
--delete-after Delete backups from heroku after storing to s3

####Add the backup task to scheduler

heroku addons:open scheduler

Then specify `pgbackup` as a command you would like to run at any of the available intervals.


## License

* MIT license.

Metadata

Release files for pgbackups-py 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pgbackups-py 0.0.1
File Size Uploaded Provenance Actions
pgbackups-py-0.0.1.tar.gz 7.1 kB Without provenance Details for pgbackups-py-0.0.1.tar.gz

Release files / pgbackups-py-0.0.1.tar.gz

Download URL pgbackups-py-0.0.1.tar.gz
Size 7.1 kB
Tags Source
SHA-256 checksum
How to use checksums
d4ae4c960696c2a8ae1dc2c080acb33fe21134238c6321e7f0adf3d7f7e7fafa
BLAKE2b-256 checksum
How to use checksums
53f81745dd40bc7e956702f3e61a9270f9bad860a3762467d4c5b4c2f9155451
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Security for pgbackups-py 0.0.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.0.1 This release

1 release file No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page