semvec/pypi-packages huggingface dataset:
db_backup 0.1.3
Code for creating encrypted backups of databases
License: WTFPL
Keywords: database encrypted backup restore

Database Backup/Restore
=======================

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 <https://github.com/tildaslash/RatticWeb>`_ which made the decision
to not handle encryption within the application itself (encryption is difficult).

.. image:: https://travis-ci.org/delfick/db_backup.png?branch=master
    :target: https://travis-ci.org/delfick/db_backup

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!:

.. code-block:: bash

    pip install db_backup

Or if you're developing it:

.. code-block:: bash

    pip install -e .
    pip install -e ".[tests]"

Tests
-----

Run the helpful script:

.. code-block:: bash

    ./test.sh

Or if you're outside a virtualenv and want to test with old pythons as well:

.. code-block:: bash

    tox