Code for creating encrypted backups of databases
Project description
This holds the necessary code to use existing database dump tools with gpg to create a full backup of a disk in an encrypted format that can sit on disk more safely than just a text dump of that database.
This library was originally created for RatticWeb which made the decision to not handle encryption within the application itself (encryption is difficult).
Usage
There are two commands of importance in this library.
db_backup.commands.backup(database_settings, recipients, backup_dir, gpg_home=None)
This will dump the database as specified by database_settings and create a gpg encrypted file inside the specified backup_dir (using the gpg_home if specified, otherwise whatever the gpg binary on your system wants to use) that can only be decrypted by the specified recipients.
database_settings is a dictionary of {name, engine, port, host, user, password} where all values except name and engine are optional.
engine is one of sqlite3, psql or mysql or the names of the equivalent backends in django.db.backends (i.e. django database dictionary is fine)
recipients is a list of strings where each string is the uid for a key in your gpg homedir.
db_backup.commands.restore(database_settings, restore_from, gpg_home=None)
This will take the gpg encrypted file at restore_from, decrypt it and feed the specified database with it.
database_settings and gpg_home behave like they do for the backup command.
restore_from is just the filepath to the encrypted backup file.
Installation
Use pip!:
pip install db_backup
Or if you’re developing it:
pip install -e .
pip install -e ".[tests]"
Tests
Run the helpful script:
./test.sh
Or if you’re outside a virtualenv and want to test with old pythons as well:
tox
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
File details
Details for the file db_backup-0.1.3.tar.gz
.
File metadata
- Download URL: db_backup-0.1.3.tar.gz
- Upload date:
- Size: 7.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f423c734d5e7b00cc875c36f3233b9ef01da6caea966dd8086776c7ff19a1253 |
|
MD5 | 1303f7380f3d720baf0f404ae7a4d7e5 |
|
BLAKE2b-256 | 99b55d7ff6e66244e292d73f8c89a1d011931930f37ca4b32539eca3f2329f9f |