{"id":13813556,"url":"https://github.com/charettes/django-mutant","last_synced_at":"2025-04-05T22:04:38.740Z","repository":{"id":2242422,"uuid":"3196867","full_name":"charettes/django-mutant","owner":"charettes","description":"Dynamic model definition and alteration (evolving schemas)","archived":false,"fork":false,"pushed_at":"2021-12-28T18:07:11.000Z","size":799,"stargazers_count":239,"open_issues_count":7,"forks_count":33,"subscribers_count":25,"default_branch":"master","last_synced_at":"2025-03-29T21:06:06.139Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://pypi.python.org/pypi/django-mutant","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/charettes.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-01-17T05:00:05.000Z","updated_at":"2025-03-07T02:39:07.000Z","dependencies_parsed_at":"2022-09-10T21:32:20.008Z","dependency_job_id":null,"html_url":"https://github.com/charettes/django-mutant","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/charettes%2Fdjango-mutant","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/charettes%2Fdjango-mutant/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/charettes%2Fdjango-mutant/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/charettes%2Fdjango-mutant/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/charettes","download_url":"https://codeload.github.com/charettes/django-mutant/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247406085,"owners_count":20933803,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-04T04:01:21.266Z","updated_at":"2025-04-05T22:04:38.715Z","avatar_url":"https://github.com/charettes.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"#############\ndjango-mutant\n#############\n\nDynamic model definition and alteration (evolving schemas).\n\n.. image:: https://travis-ci.org/charettes/django-mutant.svg?branch=master\n    :target: https://travis-ci.org/charettes/django-mutant\n\n.. image:: https://coveralls.io/repos/charettes/django-mutant/badge.svg?branch=master\u0026service=github\n    :target: https://coveralls.io/github/charettes/django-mutant?branch=master\n\n********\nOverview\n********\n\n`Django`_ provides a great ORM and with the power of `migrations`_ one can easily perform schema alteration.\n\nHowever, some projects may require *runtime* schema alteration and that's what `django-mutant`_ provides.\n\nThe main concept was inspired by those projects:\n\n- Will Hardy `dynamic-models`_'s `documentation`_ and `talk`_.\n- And by `django-dynamo`_.\n\n.. _`Django`: https://www.djangoproject.com/\n.. _`migrations`: https://docs.djangoproject.com/en/stable/topics/migrations/\n.. _`django-mutant`: https://github.com/charettes/django-mutant\n.. _`dynamic-models`: https://github.com/willhardy/dynamic-models\n.. _`documentation`: http://dynamic-models.readthedocs.org/en/latest/index.html\n.. _`talk`: http://2011.djangocon.eu/talks/22/#talkvideo\n.. _`django-dynamo`: https://bitbucket.org/schacki/django-dynamo\n\n************\nInstallation\n************\n\n::\n\n    pip install django-mutant\n\nMake sure ``'django.contrib.contenttypes'`` and ``'mutant'`` are in\nyour ``INSTALLED_APPS``\n\n::\n\n    INSTALLED_APPS += ('django.contrib.contenttypes', 'mutant')\n\n\n**********************************************\nMigrating to django-mutant 0.2 and Django 1.7+\n**********************************************\n\nIf you used ``mutant`` with Django \u003c 1.7 and are willing to migrate forward\nyou'll have to run the following steps in order to make sure you database\nschema is synchronized with Django's migration state.\n\n1. Fake the initial ``mutant`` migration.\n2. For every ``mutant.contrib`` application you installed make sure to fake\n   their initial migration and run their following migration. For example,\n   if you had the ``mutant.contrib.boolean`` application installed you want to\n   run ``manage.py migrate boolean --fake 0001 \u0026\u0026 manage.py migrate boolean``\n\n\n**********\nResources\n**********\n- `DjangoCon Europe 2013 talk`_ about mutant and other dynamic model alternatives given by Juergen Schackmann.\n- `A getting started guide`_ with mutant guide by @integricho.\n\n.. _DjangoCon Europe 2013 talk: https://www.youtube.com/watch?v=67wcGdk4aCc\n.. _A getting started guide: http://integricho.github.io/2013/07/22/mutant-introduction/\n\n\n***************************\nGet in touch and contribute\n***************************\n\nFrom now on I think the best way to contribute and get in touch is using github messaging system (issues and pull requests).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcharettes%2Fdjango-mutant","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcharettes%2Fdjango-mutant","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcharettes%2Fdjango-mutant/lists"}