{ "info": { "author": "Andrey Churin", "author_email": "aachurin@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Internet :: WWW/HTTP :: Dynamic Content" ], "description": "# Peewee Migrations\n\nA simple and flexible migration manager for Peewee ORM.\n\n* **Version:** 0.3.17\n* **Status:** Development/Alpha\n* **Author:** Churin Andrey\n\n# Requirements\n\n* python >= 3.5\n* latest peewee\n\n\n## Quick start\n\nThis package can be installed using pip:\n\n```bash\n$ pip install peewee-migrations\n```\n\nRun `pem init` in the project root.\n\n```bash\n$ pem init\nConfiguration file 'migrations.json' was created.\n```\n\nSuppose we have `Foo` model in `models.py`\n\n```python\nclass Foo(db.Model):\n bar = peewee.CharField(max_length=50)\n baz = peewee.IntegerField()\n quux = peewee.IntegerField()\n```\n\nAdd this model to the watch list and create migration.\n\n```bash\n$ pem add models.Foo\nModel 'models.Foo' was added to the watch list.\n$ pem watch\nMigration `0001_migration_201807191008` has been created.\n```\n\nNow you can list available migrations:\n\n```bash\n$ pem list\n[ ] 0001_migration_201807191008\n```\n\nOr view SQL that will be executed during migration:\n\n```bash\n$ pem show\n[ ] 0001_migration_201807191008:\n SQL> CREATE TABLE \"foo\" (\"id\" SERIAL NOT NULL PRIMARY KEY, \"bar\" VARCHAR(50) NOT NULL, \"baz\" INTEGER NOT NULL, \"quux\" INTEGER NOT NULL) []\n PY> set_done('0001_migration_201807191008')\n```\n\nUse `migrate` to run migrations:\n\n```bash\n$ pem migrate\n[X] 0001_migration_201807191008\n```\n\nChange model `Foo`\n\n```python\nclass Foo(db.Model):\n bar = peewee.CharField(max_length=20)\n baz = peewee.IntegerField()\n quux = peewee.IntegerField()\n xyzzy = peewee.IntegerField()\n```\n\nand run `watch` to create new migration:\n\n```bash\n$ pem watch\nMigration `0002_migration_201807191036` has been created.\n$ pem show\n[ ] 0002_migration_201807191036:\n SQL> ALTER TABLE \"foo\" ADD COLUMN \"xyzzy\" INTEGER []\n SQL> ALTER TABLE \"foo\" RENAME COLUMN \"bar\" TO \"old__bar\" []\n SQL> ALTER TABLE \"foo\" ADD COLUMN \"bar\" VARCHAR(20) []\n SQL> UPDATE \"foo\" SET \"xyzzy\" = %s WHERE (\"xyzzy\" IS %s) [0, None]\n SQL> UPDATE \"foo\" SET \"bar\" = SUBSTRING(\"old__bar\", %s, %s) WHERE (\"old__bar\" IS NOT %s) [1, 20, None]\n SQL> ALTER TABLE \"foo\" DROP COLUMN \"old__bar\" []\n SQL> ALTER TABLE \"foo\" ALTER COLUMN \"xyzzy\" SET NOT NULL []\n SQL> ALTER TABLE \"foo\" ALTER COLUMN \"bar\" SET NOT NULL []\n PY> set_done('0002_migration_201807191036')\n```\n\nFor more information on using the commands see --help.\n\n## migrations.json\n```\n{\n \"prerun\": \"some code here\", // some code to run before executing any command\n \"directory\": \"migrations\", // folder to hold migrations\n \"history\": \"migratehistory\", // table to hold migration history\n \"models\": [ // list of models to watch\n \"module1.Model1\",\n \"module2.Model2\"\n ]\n}\n```\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/aachurin/peewee_migrations", "keywords": "", "license": "LGPL3", "maintainer": "", "maintainer_email": "", "name": "peewee-migrations", "package_url": "https://pypi.org/project/peewee-migrations/", "platform": "any", "project_url": "https://pypi.org/project/peewee-migrations/", "project_urls": { "Homepage": "https://github.com/aachurin/peewee_migrations" }, "release_url": "https://pypi.org/project/peewee-migrations/0.3.18/", "requires_dist": [ "peewee (>=3.6.4)", "click (>=7.0)" ], "requires_python": "", "summary": "Migration engine for peewee orm", "version": "0.3.18" }, "last_serial": 5390657, "releases": { "0.3.10": [ { "comment_text": "", "digests": { "md5": "dd3afd2453b970438ab7b87ca5f9fe8d", "sha256": "882e083e3eb058c8a632b95ee4b51b689dd1cb4da1e3fa3a1efa3812103572c8" }, "downloads": -1, "filename": "peewee_migrations-0.3.10-py3-none-any.whl", "has_sig": false, "md5_digest": "dd3afd2453b970438ab7b87ca5f9fe8d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15603, "upload_time": "2018-08-24T19:48:50", "url": "https://files.pythonhosted.org/packages/2d/f5/ec1fa14b9b4225fe8f4f1cf0ceb7a26a7bd69e253dd3680e17da6d956c1e/peewee_migrations-0.3.10-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "401515c24ff01a313a55f5c0bb75bfc9", "sha256": "2cb3e349fdd6b6d4dfa3b6a7be0796d77c6630177b1a9a720f83383daaa62ee9" }, "downloads": -1, "filename": "peewee-migrations-0.3.10.tar.gz", "has_sig": false, "md5_digest": "401515c24ff01a313a55f5c0bb75bfc9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16038, "upload_time": "2018-08-24T19:48:51", "url": "https://files.pythonhosted.org/packages/c1/7f/b4658fe71bdae549306dcbdcbaae8bc7feb68e32d245e1e8bbd328b45088/peewee-migrations-0.3.10.tar.gz" } ], "0.3.11": [ { "comment_text": "", "digests": { "md5": "5dad92cbcae1f6180d1e13f4aa2698b5", "sha256": "fb932aac89f2ddd37a15db59840566287a81db55a676a07b0e3ac13fe7f5e17f" }, "downloads": -1, "filename": "peewee_migrations-0.3.11-py3-none-any.whl", "has_sig": false, "md5_digest": "5dad92cbcae1f6180d1e13f4aa2698b5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18435, "upload_time": "2018-11-02T18:15:29", "url": "https://files.pythonhosted.org/packages/28/47/3ede7d7c66663fa9964d795f75d371d21cf28daee6edcabb70e2f73031a4/peewee_migrations-0.3.11-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9ccdeb0f3e0fb8b107f1ab3ff1ee57c0", "sha256": "03dd327710fd5ed554e6e5506927067ca817178314f7201952f0f0660e12b040" }, "downloads": -1, "filename": "peewee-migrations-0.3.11.tar.gz", "has_sig": false, "md5_digest": "9ccdeb0f3e0fb8b107f1ab3ff1ee57c0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16061, "upload_time": "2018-11-02T18:15:31", "url": "https://files.pythonhosted.org/packages/94/74/23f5d620ec7ea32a0e21e55304d0a4b7a19b5fe68553e170fc3482f22736/peewee-migrations-0.3.11.tar.gz" } ], "0.3.14": [ { "comment_text": "", "digests": { "md5": "da816d69fab8f93470e4737a9725d635", "sha256": "b9ad5776fd25411aa87d52554166648063bf1a214bcf514dc136569292e7b9fa" }, "downloads": -1, "filename": "peewee_migrations-0.3.14-py3-none-any.whl", "has_sig": false, "md5_digest": "da816d69fab8f93470e4737a9725d635", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18545, "upload_time": "2018-11-26T05:09:59", "url": "https://files.pythonhosted.org/packages/db/9d/89ce0a6cf9fb8115cd9aa586823da15535b46b6da14e0c50f11c1e770f66/peewee_migrations-0.3.14-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b33a83254c4012a76be7dcaa3ab31d8a", "sha256": "a81232eea6b1e6666a5640a7200aa4b6e46be29efa2156fc211443a0fab6ff79" }, "downloads": -1, "filename": "peewee-migrations-0.3.14.tar.gz", "has_sig": false, "md5_digest": "b33a83254c4012a76be7dcaa3ab31d8a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16251, "upload_time": "2018-11-26T05:10:01", "url": "https://files.pythonhosted.org/packages/cf/0c/300c97f38fd31bdf808cd7e21726416e3de84446e2fb2ff86979ac5b43a9/peewee-migrations-0.3.14.tar.gz" } ], "0.3.15": [ { "comment_text": "", "digests": { "md5": "43fee2c39f4b59bb435f7cf8fed5b875", "sha256": "30c23e001491b6a044b52ba7c6eff6720f2f74ae3afdb8c134d23db37e950a0f" }, "downloads": -1, "filename": "peewee_migrations-0.3.15-py3-none-any.whl", "has_sig": false, "md5_digest": "43fee2c39f4b59bb435f7cf8fed5b875", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18806, "upload_time": "2019-01-22T09:34:57", "url": "https://files.pythonhosted.org/packages/93/27/b76704976428d58a005d801221b789ae3650528ecc65378ee2942216af6d/peewee_migrations-0.3.15-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5e2bd15c21ab34c7e860e082fbf9e143", "sha256": "064b0d49d0a20492d75f42f9f2edab43cb74416228b7990ded83c010abcfd22c" }, "downloads": -1, "filename": "peewee-migrations-0.3.15.tar.gz", "has_sig": false, "md5_digest": "5e2bd15c21ab34c7e860e082fbf9e143", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16487, "upload_time": "2019-01-22T09:34:59", "url": "https://files.pythonhosted.org/packages/c3/e0/9ff8fe4da6cd05a2b428fb8e4985af9546e80d91fe698c3cbad73fae882d/peewee-migrations-0.3.15.tar.gz" } ], "0.3.17": [ { "comment_text": "", "digests": { "md5": "063ce536a01170c5c97d16f9311192b9", "sha256": "94689474553e56a977cb9e68859b08d1573092a5192fe7ac355d43fb04dce249" }, "downloads": -1, "filename": "peewee_migrations-0.3.17-py3-none-any.whl", "has_sig": false, "md5_digest": "063ce536a01170c5c97d16f9311192b9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19045, "upload_time": "2019-05-07T17:39:14", "url": "https://files.pythonhosted.org/packages/95/4a/a4be2e8515b8c43e3600b277d04ce2947e50bd5172acc8b757ad0a61db5d/peewee_migrations-0.3.17-py3-none-any.whl" } ], "0.3.18": [ { "comment_text": "", "digests": { "md5": "90e2b6cb6823dc3fd9698d2a7e80c723", "sha256": "7daa84b2b3d08abdf1287e04f5f4f8cd64a21842728c11065df38fd445c6777c" }, "downloads": -1, "filename": "peewee_migrations-0.3.18-py3-none-any.whl", "has_sig": false, "md5_digest": "90e2b6cb6823dc3fd9698d2a7e80c723", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19083, "upload_time": "2019-06-12T11:04:22", "url": "https://files.pythonhosted.org/packages/c8/a4/c6c820f8249187634cff24302ce745c463d359262f52c8309c0507aae2bb/peewee_migrations-0.3.18-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5c984f6b300c7dae1b8aac13073a268a", "sha256": "733b53e36da5d32aa340ca050ec2e98c4da19cc5d8737c826c0391ac625b1c5e" }, "downloads": -1, "filename": "peewee-migrations-0.3.18.tar.gz", "has_sig": false, "md5_digest": "5c984f6b300c7dae1b8aac13073a268a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16900, "upload_time": "2019-06-12T11:04:24", "url": "https://files.pythonhosted.org/packages/b4/8c/39b4ce43d4b66a0e6f5b3001b924b3f540f8d22163f7ffe6b5f4354158d4/peewee-migrations-0.3.18.tar.gz" } ], "0.3.6": [ { "comment_text": "", "digests": { "md5": "cafea519f8edb93fff93075d7222b82f", "sha256": "318bccabbb0f05265355960af86cdff71de7a3b8ab7017c07fc13fdae454f7d8" }, "downloads": -1, "filename": "peewee_migrations-0.3.6-py3-none-any.whl", "has_sig": false, "md5_digest": "cafea519f8edb93fff93075d7222b82f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15246, "upload_time": "2018-07-19T09:04:46", "url": "https://files.pythonhosted.org/packages/8d/c3/3e8efe3e76d1e199a0c69da3a686cd50107021d5fcc0d84819f2b57cd442/peewee_migrations-0.3.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ea6008a1c29773026fe70045d0d150bb", "sha256": "039cf24a4c70db095071a37fa337ac1ef81aeaa06924a9ef1ac8b500135f81af" }, "downloads": -1, "filename": "peewee-migrations-0.3.6.tar.gz", "has_sig": false, "md5_digest": "ea6008a1c29773026fe70045d0d150bb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15651, "upload_time": "2018-07-19T09:04:47", "url": "https://files.pythonhosted.org/packages/6c/ae/885db017cb16cf1365462d34547af862bf09e61f7e96002fbe93b7ba9fca/peewee-migrations-0.3.6.tar.gz" } ], "0.3.9": [ { "comment_text": "", "digests": { "md5": "141e65abd58774474794bed6dc2dc17f", "sha256": "2d077652da76d3f6e0ba780086342b20fbe25d38542411a094edd85c290f0ee0" }, "downloads": -1, "filename": "peewee_migrations-0.3.9-py3-none-any.whl", "has_sig": false, "md5_digest": "141e65abd58774474794bed6dc2dc17f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15370, "upload_time": "2018-07-20T07:19:49", "url": "https://files.pythonhosted.org/packages/56/83/deda3d0b3657f8b3619804a18231f9f689be68a10b2fc33fdbc2c03ecdec/peewee_migrations-0.3.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "db13886b436b019aac59093ffec84a3d", "sha256": "ea144b9600fda236df1995e793910714363af1d1f618681c24d003ad65deca9b" }, "downloads": -1, "filename": "peewee-migrations-0.3.9.tar.gz", "has_sig": false, "md5_digest": "db13886b436b019aac59093ffec84a3d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15834, "upload_time": "2018-07-20T07:19:50", "url": "https://files.pythonhosted.org/packages/ba/f4/c4d156dce5e04d9ea7e6fb34b773e6e6b08b4ca679252a5994ec32001c16/peewee-migrations-0.3.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "90e2b6cb6823dc3fd9698d2a7e80c723", "sha256": "7daa84b2b3d08abdf1287e04f5f4f8cd64a21842728c11065df38fd445c6777c" }, "downloads": -1, "filename": "peewee_migrations-0.3.18-py3-none-any.whl", "has_sig": false, "md5_digest": "90e2b6cb6823dc3fd9698d2a7e80c723", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19083, "upload_time": "2019-06-12T11:04:22", "url": "https://files.pythonhosted.org/packages/c8/a4/c6c820f8249187634cff24302ce745c463d359262f52c8309c0507aae2bb/peewee_migrations-0.3.18-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5c984f6b300c7dae1b8aac13073a268a", "sha256": "733b53e36da5d32aa340ca050ec2e98c4da19cc5d8737c826c0391ac625b1c5e" }, "downloads": -1, "filename": "peewee-migrations-0.3.18.tar.gz", "has_sig": false, "md5_digest": "5c984f6b300c7dae1b8aac13073a268a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16900, "upload_time": "2019-06-12T11:04:24", "url": "https://files.pythonhosted.org/packages/b4/8c/39b4ce43d4b66a0e6f5b3001b924b3f540f8d22163f7ffe6b5f4354158d4/peewee-migrations-0.3.18.tar.gz" } ] }