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

automatic backup of django model instances to a subversion repository

Project Description

svndjango has been renamed django-vcexport

This package provides some basic utilities for backing up django model instances to a Subversion repository. It is very experimental at this point and hasn’t been tested in any meaningful environment.

It does not provide any utilities for restoring live data from backups, though it may one day.

Two distinct use cases are supported: * You want to version a model wholesale * You have a model which has one or two document-like text fields, and you want to version those fields only

To use the former, you should subclass svndjango.models.SubversionedMixin and call its .save method from your own. svndjango.models.SubversionedModel is an example (which you can also just subclass directly and not worry about any of it, but it lacks flexibility) – you probably want to call only after the “actual” .save to your RDB; this will ensure that you don’t accidentally save a revision that ends up being rolled back in the RDB.

Your model instances will be serialized to JSON and saved in repository paths that look like /module/name/class/name/instance_pk.

To be honest, versioning a model wholesale seems like a pretty bad idea to me, unless you’re very careful about versioning every related model, and unless you’re versioning the model schemas side-by-side with the content. But it’s fun to experiment with at least.

To use the latter, your model should subclass svndjango.models.SVNDoc in the same manner. Text fields to be versioned must be declared explicitly, by using the svndjango.models.SubversionedTextField field instead of the standard TextField.

Your text fields will be saved directly into the repository in repository paths that look like /module/name/class/name/instance_pk/field_name.

You must provide one piece of configuration in your file:

SVNDJANGO_CHECKOUT_DIR: the absolute path to a local checkout of the repository that you want to store your data in

A second optional setting is supported:

SVNDJANGO_SILENT_FAILURES: if this is set to True, then any exceptions caused by svndjango will be swallowed. This may be useful if you’d rather avoid user errors than preserve a strictly full history of changes.

You will have to initialize your SVN repository and checkout on your own, though these may be automated in future versions. (Not that it’s hard to do anyway)

You must have pysvn installed.

Originally developed at Columbia University’s Center for New Media Teaching & Learning <>

New in version 0.3:

  • Added svndjango.sven.DjangoAutoupdatingSvnAccess class (depends on sven>=0.4) which will deserialize Django model objects out of your committed documents and save them to your Django database after the commit goes through.

    Assumes you will have your Django environment and settings properly installed at checkin-time, and assumes that all checkins should be saved to the Django database.

    If these conditions are met, use as a drop-in replacement for sven.backend.SvnAccess (see that package’s documentation for usage)


0.2 (07-30-2009)

  • Declare sample SubversionedModel as an abstract base class so django won’t create a pointless database table for it.

0.1 (07-24-2009)

Initial release.

Release History

Release History

This version
History Node


History Node


History Node


Download Files

Download Files

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

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
svndjango-0.3.tar.gz (4.1 kB) Copy SHA256 Checksum SHA256 Source Aug 10, 2009

Supported By

WebFaction WebFaction Technical Writing 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 Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting