Skip to main content

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

  • Free software: BSD license

Installation

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

pip install django-devfixtures

Configuration

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: https://git-lfs.github.com/

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

# git lfs track 'dev_fixtures/*'

Usage

Create fixture:

# ./manage.py devfixture create

Restore fixture:

# ./manage.py 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:

# ./manage.py devfixture create -f ~/Desktop/devfixture-for-peter-debugging.zip

To load a shared fixture:

# ./manage.py devfixture restore -f ~/Desktop/devfixture-for-peter-debugging.zip

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

# ./manage.py devfixture -h

Documentation

https://django-devfixtures.readthedocs.org/

Development

To run the all tests run:

tox

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

Windows

set PYTEST_ADDOPTS=--cov-append
tox

Other

PYTEST_ADDOPTS=--cov-append tox

Changelog

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.

Metadata

Release files for django-devfixtures 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for django-devfixtures 0.1.3
File Size Uploaded Provenance Actions
django-devfixtures-0.1.3.tar.gz 13.8 kB Without provenance Details for django-devfixtures-0.1.3.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for django-devfixtures 0.1.3
File Interpreter ABI Platform Actions
django_devfixtures-0.1.3-py2.py3-none-any.whl Python 3, Python 2 none any Details for django_devfixtures-0.1.3-py2.py3-none-any.whl

Total release size: 22.6 kB

Release files / django-devfixtures-0.1.3.tar.gz

Download URL django-devfixtures-0.1.3.tar.gz
Size 13.8 kB
Tags Source
SHA-256 checksum
How to use checksums
1a5b6345ca40db5af3d5a2a00042fddfb30646a0abcd1f17db08373e6c6874a7
BLAKE2b-256 checksum
How to use checksums
6f3ac8be5a158eb9920347d67f0c2c5881448e9558180a468f2a3b2b7ea047fb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / django_devfixtures-0.1.3-py2.py3-none-any.whl

Download URL django_devfixtures-0.1.3-py2.py3-none-any.whl
Size 8.8 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
3869d412165d6346e082c4fafac7afdd483dd586e64bfcb9c9d22b1ab22f7906
BLAKE2b-256 checksum
How to use checksums
2f267275883e4070806f94fce25e2b10bd4b1c6b51e51a47e2e11bc6ee28a3f0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Security for django-devfixtures 0.1.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 release files No provenance

0.1.2

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page