Dbbackup is a free license software where all help are welcomed. This documentation aims to help users or developers to bring their contributions to this project.
Submit a bug, issue or enhancement¶
All communication are made with GitHub issues. Do not hesitate to open a issue if:
- You have an improvement idea
- You found a bug
- You’ve got a question
- More generaly something seems wrong for you
Make a patch¶
We use GitHub pull requests for manage all patches. For a better handling of requests we advise you to:
- Fork the project and make a new branch
- Make your changes with tests if possible and documentation if needed
- Push changes to your fork repository and test it with Travis
- If succeed, open a pull request
- Upset us until we give you an answer
We advise you to launch it with Python 2 & 3 before push and try it in Travis. DBBackup uses a lot of file operations, so breaks between Python versions are easy.
We provides tools for helps developers to quickly test and dev on DBBackup. There are 2 majors scripts:
runtests.py: Unit tests launcher and equivalent of
manage.pyin the test project.
functional.sh: Shell script that use
runtests.pyto create a database backup and restore it, the same with media, and test if they are restored.
You can test code in local machine with the
But if argument are provided, it acts as
manage.py so you can simply
launch other command to test deeply, example:
# Enter in Python shell python runtests.py shell # Launch a particular test module python runtests.py test dbbackup.tests.test_utils
All tests are stored in
It tests at the higher level if backup/restore mechanism is alright. It becomes powerful because of the configuration you can give to it. See the next chapter for explanation about it.
DBBackup contains a test Django project at
dbbackup.tests and its
settings module. This configuration takes care of the following
DB_ENGINE - Default:
Databank-Engine to use. See in django.db.backends for default backends.
DB_NAME - Default:
Database name. Should be set correctly if an other db is used than sqlite3
DB_USER - Default:
DB_PASSWORD - Default:
DB_HOST - Default:
Why is this more complicated than the earlier solution? For mongodb tests dj-database-url had no ENGINE defined.
MEDIA_ROOT - Default=
MEDIA_ROOT, useful if you want test media backup from filesystem
STORAGE - Default:
Storage used for backups
Options for instanciate the chosen storage. It must be in format
"key1=foo,key2=bar" and will be convert into a