Skip to content

Latest commit

 

History

44 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Worek - A Database Backup Tool

nox Codecov PyPI

Worek is a database backup tool.

  • Create full binary backups of a PostgreSQL database
  • Restore a text or binary backup of a PostgreSQL database
  • Can restore a database over the top of an existing database (clears all data first) meaning you don't need a super user to restore a database.

Usage

Create a backup with the contents going to a file:

$ worek backup -d database_name -f ./backup.bin

Create a backup with the contents going to STDOUT

$ worek backup -d database_name \
    | openssl enc -aes-256-cbc -pass file:password.txt -md sha256 -d -out backup.bak.enc

Restore a backup from STDIN. Note you have to use the -F property to specify the type of backup you are handing. This is not required when using -f and specifying the file path.

$ openssl enc -aes-256-cbc -pass file:password.txt -md sha256 -d -in backup.bak.enc  \
    |  worek restore -h localhost -d database_name -F c

Supports standard PG environment variables

$ PGPORT=5432 worek backup -d database_name -f ./backup.bin

Postgres Client Version

Worek makes use of Postgres client utilities internally to create/restore backups. If multiple versions of the utilities are present, by default Worek will attempt to match the version of the utilities to the database server version.

You may also specify a particular version of the client utilities to use via the --version or -v option. This feature requires pg_wrapper to be installed on the system.

$ worek backup -d database_name -f ./backup.bin -v 11

Dev

Copier Template

Project structure and tooling mostly derives from Coppy. See its documentation for context and additional instructions.

This project can be updated from the upstream repo, see Updating a Project.

Project Setup

From zero to hero (passing tests that is):

  1. Ensure host dependencies are installed

  2. Start docker service dependencies (if applicable):

    docker compose up -d

  3. Sync project virtualenv w/ lock file:

    uv sync

  4. Configure prek:

    prek install

  5. Run tests:

    nox

Versions

Versions are date based. A version task shows and bumps versions:

  # Show current version
  mise version show

  # Bump version based on date, tag, and push:
  mise version bump

  # See other options
  mise version -- --help

About

A database backup tool

Resources

Stars

0 stars

Watchers

6 watching

Forks

Releases

Packages

Used by

Contributors

Languages