Metadata-Version: 2.1
Name: django-pgclone
Version: 2.3.1
Summary: Dump and restore Postgres databases with Django.
Home-page: https://github.com/Opus10/django-pgclone
License: BSD-3-Clause
Author: Wes Kendall
Requires-Python: >=3.7.0,<4
Classifier: Framework :: Django
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Requires-Dist: django (>=2)
Requires-Dist: importlib_metadata (>=4); python_version >= "3.7" and python_version < "3.8"
Project-URL: Documentation, https://django-pgclone.readthedocs.io
Project-URL: Repository, https://github.com/Opus10/django-pgclone
Description-Content-Type: text/x-rst

django-pgclone
##############

``django-pgclone`` makes it easy to dump and restore Postgres databases.
Here are some key features:

1. Streaming dumps and restores to configurable storage backends like S3.
   Instances with limited memory aren't a problem for large databases.

2. A restoration process that works behind the scenes, swapping in
   the restored database when finished.

3. Configurable hooks into the dump and restore process, for example,
   migrating a restored database before it is swapped.

4. Reversible restores, making it possible to quickly revert to the initial
   restore or the previous database.

5. Re-usable configurations for instrumenting different types of dumps and restores.

Quickstart
==========

To dump a database, do::

    python manage.py pgclone dump

To list database dump keys, do::

    python manage.py pgclone ls

To restore a datase, do::

    python manage.py pgclone restore <dump_key>

Database dumps are relative to the storage location, which defaults to
the local file system. Dump keys are in
the format of ``<instance>/<database>/<config>/<timestamp>.dump``.

When listing, use an optional prefix. Restoring
supports the same interface, using the latest key that matches the
prefix.

Documentation
=============

`View the django-pgclone docs here
<https://django-pgclone.readthedocs.io/>`_ to learn more about:

* The basics and an overview of how it works.
* The core command docs.
* Configuring an S3 storage backend.
* Running management command hooks during dumping or restoring.
* Creating restores that can be quickly reverted.
* Re-using command parameters for different flows.
* All settings.
* Additional details on using AWS RDS databases.

Installation
============

Install django-pgclone with::

    pip3 install django-pgclone

After this, add ``pgclone`` to the ``INSTALLED_APPS``
setting of your Django project.

**Note**  Install the AWS CLI to enable the S3 storage backend. Use ``pip install awscli``
or follow the
`installation guide here <https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html>`__.

Contributing Guide
==================

For information on setting up django-pgclone for development and
contributing changes, view `CONTRIBUTING.rst <CONTRIBUTING.rst>`_.

Primary Authors
===============

- @wesleykendall (Wes Kendall)
- @ethanpobrien (Ethan O'Brien)

