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 generally something seems wrong for you
Make a patch¶
We use GitHub pull requests to 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 it succeeds, open a pull request
- Bother 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 to help developers to quickly test and develop 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 on your local machine with the
But if argument are provided, it acts as
manage.py so you can simply
launch some 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 a 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 a db other than sqlite3 is used.
DB_USER - Default:
DB_PASSWORD - Default:
DB_HOST - Default:
MEDIA_ROOT - Default=
MEDIA_ROOT, useful if you want test media backup from filesystem
STORAGE - Default:
Storage used for backups
Options for instantiating the chosen storage. It must be formatted as
"key1=foo,key2=bar" and will be converted into a
We use Travis which tests Dbbackup with a matrix of components’ versions: Several versions of Django and several versions of Python including 2, 3 and PyPy.
Code coverage is ensured with Coveralls and the project has not yet reached a minimum coverage limit.
Code health is checked with Landscape