GithubHelp home page GithubHelp logo

mick88 / django-dbbackup Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jazzband/django-dbbackup

0.0 1.0 0.0 393 KB

Management commands to help backup and restore your project database and media files

License: BSD 3-Clause "New" or "Revised" License

Makefile 0.32% Python 97.82% Shell 1.86%

django-dbbackup's Introduction

Django Database Backup

image

Documentation Status

image

Code Health

This Django application provides management commands to help backup and restore your project database and media files with various storages such as Amazon S3, DropBox, local file storage or any Django storage.

It is made for:

  • Ensure yours backup with GPG signature and encryption
  • Archive with compression
  • Deal easily with remote archiving
  • Great to keep your development database up to date.
  • Use Crontab or Celery to setup automated backups.

Docs

See our offical documentation at Read The Docs.

Why use DBBackup

This software doesn't reinvent the wheel, in few words it is a pipe between your Django project and your backup storage. It tries to use tradionnal dump & restore mechanisms, applies compression and/or encryption and stores it to a storage.

It gives a simple interface to backup and restore your database or media files.

Management Commands

dbbackup

Backup your database to the specified storage. By default this will backup all databases specified in your settings.py file and will not delete any old backups. You can optionally specify a server name to be included in the backup filename. :

Usage: ./manage.py dbbackup [options]

Options:
  --noinput             Tells Django to NOT prompt the user for input of any
                        kind.
  -q, --quiet           Tells Django to NOT output other text than errors.
  -c, --clean           Clean up old backup files
  -d DATABASE, --database=DATABASE
                        Database to backup (default: everything)
  -s SERVERNAME, --servername=SERVERNAME
                        Specify server name to include in backup filename
  -z, --compress        Compress the backup files
  -e, --encrypt         Encrypt the backup files
  -o OUTPUT_FILENAME, --output-filename=OUTPUT_FILENAME
                        Specify filename on storage
  -O OUTPUT_PATH, --output-path=OUTPUT_PATH
                        Specify where to store on local filesystem

dbrestore

Restore your database from the specified storage. By default this will lookup the latest backup and restore from that. You may optionally specify a servername if you you want to backup a database image that was created from a different server. You may also specify an explicit local file to backup from.

Usage: ./manage.py dbrestore [options]

Options:
  --noinput             Tells Django to NOT prompt the user for input of any
                        kind.
  -d DATABASE, --database=DATABASE
                        Database to restore
  -i INPUT_FILENAME, --input-filename=INPUT_FILENAME
                        Specify filename to backup from
  -I INPUT_PATH, --input-path=INPUT_PATH
                        Specify path on local filesystem to backup from
  -s SERVERNAME, --servername=SERVERNAME
                        Use a different servername backup
  -c, --decrypt         Decrypt data before restoring
  -p PASSPHRASE, --passphrase=PASSPHRASE
                        Passphrase for decrypt file
  -z, --uncompress      Uncompress gzip data before restoring

mediabackup

Backup media files by get them one by one, include in a TAR file. :

Usage: ./manage.py mediabackup [options]

Options:
  --noinput             Tells Django to NOT prompt the user for input of any
                        kind.
  -q, --quiet           Tells Django to NOT output other text than errors.
  -c, --clean           Clean up old backup files
  -s SERVERNAME, --servername=SERVERNAME
                        Specify server name to include in backup filename
  -z, --compress        Do not compress the archive
  -e, --encrypt         Encrypt the backup files
  -o OUTPUT_FILENAME, --output-filename=OUTPUT_FILENAME
                        Specify filename on storage
  -O OUTPUT_PATH, --output-path=OUTPUT_PATH
                        Specify where to store on local filesystem

mediarestore

Restore media files ftom storage backup to your media storage. :

Usage: ./manage.py mediarestore [options]

Options:
  --noinput             Tells Django to NOT prompt the user for input of any
                        kind.
  -q, --quiet           Tells Django to NOT output other text than errors.
  -i INPUT_FILENAME, --input-filename=INPUT_FILENAME
                        Specify filename to backup from
  -I INPUT_PATH, --input-path=INPUT_PATH
                        Specify path on local filesystem to backup from
  -e, --decrypt         Decrypt data before restoring
  -p PASSPHRASE, --passphrase=PASSPHRASE
                        Passphrase for decrypt file
  -z, --uncompress      Uncompress gzip data before restoring
  -r, --replace         Replace existing files

Contributing

All contribution are very welcomed, propositions, problems, bugs and enhancement are tracked with GitHub issues system and patch are submitted via pull requests.

We use Travis coupled with Coveralls as continious integration tools.

image

Tests

Tests are stored in dbbackup.tests and for run them you must launch:

python runtests.py

In fact, runtests.py acts as a manage.py file and all Django command are available. So you could launch:

python runtests.py shell

For get a Python shell configured with the test project. Also all test command options are available and usable for run only some chosen tests. See Django test command documentation for more informations about it.

There are even functional tests: :

./functional.sh

See documentation for details about

To run the tests across all supported versions of Django and Python, you can use Tox. Firstly install Tox:

pip install tox

To run the tests just use the command tox in the command line. If you want to run the tests against just one specific test environment you can run tox -e <testenv>. For example, to run the tests with Python3.3 and Django1.9 you would run:

tox -e py3.3-django1.9

The available test environments can be found in tox.ini.

django-dbbackup's People

Contributors

benjaoming avatar dennissiemensma avatar dmitryfillo avatar dorianamouroux avatar eriktelepovsky avatar gerhc avatar igor-shevchenko avatar ilcapo77 avatar pacahon avatar patrickhallen avatar pkkid avatar psychok7 avatar ropp avatar sramana avatar sroussy avatar underyx avatar valignatev avatar voronind avatar zulupro avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.