Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

Share development fixtures across your team, with git commit id tracing and autodetect.

Project Description

Share development fixtures across your team, with git commit id tracing and autodetect.

  • Free software: BSD license


Currently this package requires git, psql, pg_dump createdb, dropdb and unzip to function.

pip install django-devfixtures


Add devfixtures to INSTALLED_APPS.

settings.DEVFIXTURE_DIR         # path to directory where auto generated fixtures should be stored
settings.DEVFIXTURE_BACKUP_DIR  # path to where backups are stored when running restore

How it works

When you create a fixture (without any arguments) the management command will zip MEDIA_FILES and database dump to a file with naming <AUTHOR_DATE>+<COMMITID>+<CREATED_DATE>+<CREATOR>.zip.

The auto restore function will check from HEAD and backards in the commit tree, and when it finds a fixture file with that commit id, it will restore that version after a backup of the current state has been created. If the restore for some reason fails, it will attempt to restore the backuped fixture.

This works with the following criterias:

  • You will not rebase/rewrite history, as commit ids might no longer match
  • You will not delete migrations manually

It also have the limitations to unly work with PostgreSQL. And there are some current limitations, due to the fact that the implementation uses pg_dump etc for creating dumps. Requirements:

  • The database name is defined in settings.DATABASES[‘default’][‘NAME’]
  • The running user have permissions to dropdb/createdb

Storing the dev_fixtures in git

Devfixtures can become large, if you have big set of media files. If you use github, you are encouraged to use git-lfs to store the files. Read about git lfs here:

Add devfixtures/* to your tracked git lfs files before you add your first fixture to git.

# git lfs track 'dev_fixtures/*'


Create fixture:

# ./ devfixture create

Restore fixture:

# ./ devfixture restore

Create manual fixture sharing, for example if you have a branch and you want some other developer to take a look at a bug. Run this and send the zip file to the other developer:

# ./ devfixture create -f ~/Desktop/

To load a shared fixture:

# ./ devfixture restore -f ~/Desktop/

When running restore, a backup is always created. You can restore it the same way as above.

# ./ devfixture -h


To run the all tests run:


Note, to combine the coverage data from all the tox environments run:

set PYTEST_ADDOPTS=--cov-append
PYTEST_ADDOPTS=--cov-append tox


0.1.3 (2016-02-02)

  • If pg_dump fails, CommandError is raised.
  • Updated documentation that recommends git lfs if dev fixtures will be stored in your github repo.

0.1.1 (2016-02-02)

  • First release on PyPI.

Release History

This version
History Node


History Node


History Node


History Node


Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, Size & Hash SHA256 Hash Help File Type Python Version Upload Date
(8.8 kB) Copy SHA256 Hash SHA256
Wheel py2.py3 Mar 23, 2016
(13.8 kB) Copy SHA256 Hash SHA256
Source None Mar 23, 2016

Supported By

Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Google Google Cloud Servers