{ "info": { "author": "David Sanders", "author_email": "dsanders11@ucsbalum.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Topic :: Database", "Topic :: Utilities" ], "description": "========================\n django-migrate-project\n========================\n\n.. image:: https://img.shields.io/badge/license-MIT-blue.svg\n :alt: License\n :target: https://raw.githubusercontent.com/dsanders11/django-migrate-project/master/LICENSE\n\n.. image:: https://travis-ci.org/dsanders11/django-migrate-project.svg?branch=master\n :alt: Build Status\n :target: https://travis-ci.org/dsanders11/django-migrate-project\n\n.. image:: https://img.shields.io/pypi/v/django-migrate-project.svg\n :alt: Latest PyPI version\n :target: https://pypi.python.org/pypi/django-migrate-project/\n\n.. image:: https://coveralls.io/repos/dsanders11/django-migrate-project/badge.svg?branch=master\n :alt: Coverage\n :target: https://coveralls.io/r/dsanders11/django-migrate-project?branch=master\n\n`Django`_ management commands for project-wide (editable) migrations.\n\nOverview\n========\n\nThe django-migrate-project app aims to add management commands to make running\nfull project migrations more sane and controllable. The concept is pretty\nsimple: first collect any unapplied migrations into per-app migration files,\nthen review and modify as need be, and finally apply the migrations.\n\nBy staging and consolidating unapplied migrations in a way that they can be\nedited and reviewed before applying, more confidence is gained that a rogue\nmigration won't damage production tables. The collected and consolidated\nmigrations are listed as replacements for the individual app migrations they\nrepresent so once they have been applied everything is in the same state as if\nthe individual app migrations has been applied via 'migrate'.\n\nRequirements\n============\n\nRequires Django 1.7+ and as such Python 2.7+ as well\n\nInstallation\n============\n\nSimply use `pip`_ to install::\n\n $ pip install django-migrate-project\n\nTo be of any use ``django-migrate-project`` must be added to the Django project\nvia ``INSTALLED_APPS`` in the project ``settings.py`` file::\n\n INSTALLED_APPS = (\n ...\n 'django_migrate_project',\n ...\n )\n\nUsage\n=====\n\nTwo new management commands provide the core functionality. To gather up any\nunapplied migrations for the project simply run::\n\n $ python manage.py collectmigrations\n\nThe default collection location is ``BASE_DIR/pending_migrations``. If the project's\n``settings.py`` does not have a ``BASE_DIR`` then a directory path must be provided\nusing the ``--output-dir`` option.\n\nThe collected migrations are grouped per-app and have the filename format of\n``_project.py``. These files can be edited to taste in order to\nchange the migration, the only important bit is to keep the `replaces` and\n``dependencies`` fields in the migration the same, as those allow the bookkeeping\nto be kept accurate.\n\nCollected migrations are applied via::\n\n $ python manage.py applymigrations\n\nThe default directory path is used again if possible, otherwise the path must\nbe provided via the ``--input-dir`` option.\n\nFinally, migrations can be unapplied easily as well, returning the migration\nstate to what it was before by running::\n\n $ python manage.py applymigrations --unapply\n\nExperimental\n============\n\nStarting with v0.2.0 there's also the capability to generate project-level\nmigrations as a way to capture monkey-patched models and other changes that\nshouldn't create migrations in a third-party app.\n\nTo use this functionality, first create a top-level `migrations` directory\nwith a `__init__.py` file to make it a Python package. Then run the following\ncommand to create any new project-level migrations (changes not present in\nthird-party app migrations)::\n\n $ python manage.py makeprojectmigrations\n\nAssuming there are any migrations to generate, the top-level `migrations`\ndirectory should now be populated and you can migrate the project using::\n\n $ python manage.py migrateproject\n\nAs with the `applymigrations` command, `migrateproject` also has an easy\nunapply functionality::\n\n $ python manage.py migrateproject --unapply\n\nWhile this functionality is well covered by tests it will remain 'experimental'\nuntil it gets a bit more real world use.\n\nContributing\n============\n\nContributions are welcome, just create a pull request or issue on the\n`GitHub repository`_ for the project.\n\n.. _`Django`: https://djangoproject.com/\n.. _`GitHub repository`: https://github.com/dsanders11/django-migrate-project\n.. _`pip`: https://pip.pypa.io/en/stable/\n.. _`Python`: https://python.org/", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/dsanders11/django-migrate-project/", "keywords": "django migration database", "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "django-migrate-project", "package_url": "https://pypi.org/project/django-migrate-project/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/django-migrate-project/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/dsanders11/django-migrate-project/" }, "release_url": "https://pypi.org/project/django-migrate-project/0.2.0/", "requires_dist": null, "requires_python": null, "summary": "Django management commands for project-wide (editable) migrations.", "version": "0.2.0" }, "last_serial": 1761142, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "fcfa62c305e3a55f6023e93b249b1207", "sha256": "e7d46f518b3e2beba41e0051dd3a5f0ccb5992afc155fe91b450a324f9d4c7d6" }, "downloads": -1, "filename": "django_migrate_project-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "fcfa62c305e3a55f6023e93b249b1207", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 10871, "upload_time": "2015-05-15T15:33:38", "url": "https://files.pythonhosted.org/packages/94/e0/8395094b65fb978f4c8beb973db4af8d1a911e8999332d247213da9a7801/django_migrate_project-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b20d2af7fd4fef1ca2738aee777f15f7", "sha256": "150fdebbc9840c9ad40a501fd836eb973e439ac6ace032c1f660157939e8f5bc" }, "downloads": -1, "filename": "django-migrate-project-0.1.0.tar.gz", "has_sig": false, "md5_digest": "b20d2af7fd4fef1ca2738aee777f15f7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7811, "upload_time": "2015-05-15T15:33:28", "url": "https://files.pythonhosted.org/packages/19/f0/14eda01eb9ccb0878f9d9866560ff1d542146ee4897719fc9e3476e7c99a/django-migrate-project-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "built for Linux-3.10.0-229.11.1.el7.x86_64-x86_64-with-glibc2.3", "digests": { "md5": "a82e8112d6d89c7c74fcb0f6c07f945f", "sha256": "f0120bc3d748ebd0b548bf1f1700a66dc6e021b37949b8bc743ba45ee6b8375c" }, "downloads": -1, "filename": "django-migrate-project-0.2.0.linux-x86_64.tar.gz", "has_sig": false, "md5_digest": "a82e8112d6d89c7c74fcb0f6c07f945f", "packagetype": "bdist_dumb", "python_version": "any", "requires_python": null, "size": 25701, "upload_time": "2015-10-10T10:03:20", "url": "https://files.pythonhosted.org/packages/83/c1/9dcd902af17348da0628f23d09f4b3e1da83aac5a52492231770cb27c45c/django-migrate-project-0.2.0.linux-x86_64.tar.gz" }, { "comment_text": "", "digests": { "md5": "f5f47f1e9d9802ed06f76f9ebf69079b", "sha256": "b78518b4681c866b286616917687903ba13b235fcdba377940aab631f9a9ec21" }, "downloads": -1, "filename": "django-migrate-project-0.2.0.tar.gz", "has_sig": false, "md5_digest": "f5f47f1e9d9802ed06f76f9ebf69079b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14078, "upload_time": "2015-10-10T10:03:06", "url": "https://files.pythonhosted.org/packages/d2/0e/8967f62784b3ea2168fed8ed27545e668a3a53fc9b95c869563265b46f96/django-migrate-project-0.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "built for Linux-3.10.0-229.11.1.el7.x86_64-x86_64-with-glibc2.3", "digests": { "md5": "a82e8112d6d89c7c74fcb0f6c07f945f", "sha256": "f0120bc3d748ebd0b548bf1f1700a66dc6e021b37949b8bc743ba45ee6b8375c" }, "downloads": -1, "filename": "django-migrate-project-0.2.0.linux-x86_64.tar.gz", "has_sig": false, "md5_digest": "a82e8112d6d89c7c74fcb0f6c07f945f", "packagetype": "bdist_dumb", "python_version": "any", "requires_python": null, "size": 25701, "upload_time": "2015-10-10T10:03:20", "url": "https://files.pythonhosted.org/packages/83/c1/9dcd902af17348da0628f23d09f4b3e1da83aac5a52492231770cb27c45c/django-migrate-project-0.2.0.linux-x86_64.tar.gz" }, { "comment_text": "", "digests": { "md5": "f5f47f1e9d9802ed06f76f9ebf69079b", "sha256": "b78518b4681c866b286616917687903ba13b235fcdba377940aab631f9a9ec21" }, "downloads": -1, "filename": "django-migrate-project-0.2.0.tar.gz", "has_sig": false, "md5_digest": "f5f47f1e9d9802ed06f76f9ebf69079b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14078, "upload_time": "2015-10-10T10:03:06", "url": "https://files.pythonhosted.org/packages/d2/0e/8967f62784b3ea2168fed8ed27545e668a3a53fc9b95c869563265b46f96/django-migrate-project-0.2.0.tar.gz" } ] }