django-mutant
django-mutant copied to clipboard
Dynamic model definition and alteration (evolving schemas)
############# django-mutant #############
Dynamic model definition and alteration (evolving schemas).
.. image:: https://travis-ci.org/charettes/django-mutant.svg?branch=master :target: https://travis-ci.org/charettes/django-mutant
.. image:: https://coveralls.io/repos/charettes/django-mutant/badge.svg?branch=master&service=github :target: https://coveralls.io/github/charettes/django-mutant?branch=master
Overview
Django_ provides a great ORM and with the power of migrations_ one can easily perform schema alteration.
However, some projects may require runtime schema alteration and that's what django-mutant_ provides.
The main concept was inspired by those projects:
- Will Hardy
dynamic-models'sdocumentationandtalk_. - And by
django-dynamo_.
.. _Django: https://www.djangoproject.com/
.. _migrations: https://docs.djangoproject.com/en/stable/topics/migrations/
.. _django-mutant: https://github.com/charettes/django-mutant
.. _dynamic-models: https://github.com/willhardy/dynamic-models
.. _documentation: http://dynamic-models.readthedocs.org/en/latest/index.html
.. _talk: http://2011.djangocon.eu/talks/22/#talkvideo
.. _django-dynamo: https://bitbucket.org/schacki/django-dynamo
Installation
::
pip install django-mutant
Make sure 'django.contrib.contenttypes' and 'mutant' are in
your INSTALLED_APPS
::
INSTALLED_APPS += ('django.contrib.contenttypes', 'mutant')
Migrating to django-mutant 0.2 and Django 1.7+
If you used mutant with Django < 1.7 and are willing to migrate forward
you'll have to run the following steps in order to make sure you database
schema is synchronized with Django's migration state.
- Fake the initial
mutantmigration. - For every
mutant.contribapplication you installed make sure to fake their initial migration and run their following migration. For example, if you had themutant.contrib.booleanapplication installed you want to runmanage.py migrate boolean --fake 0001 && manage.py migrate boolean
Resources
DjangoCon Europe 2013 talk_ about mutant and other dynamic model alternatives given by Juergen Schackmann.A getting started guide_ with mutant guide by @integricho.
.. _DjangoCon Europe 2013 talk: https://www.youtube.com/watch?v=67wcGdk4aCc .. _A getting started guide: http://integricho.github.io/2013/07/22/mutant-introduction/
Get in touch and contribute
From now on I think the best way to contribute and get in touch is using github messaging system (issues and pull requests).