update github actions update github actions update github actions update github actions update github actions update github actions update github actions update github actions update github actions update github actions
====== Aerich ====== .. image:: https://img.shields.io/pypi/v/aerich.svg?style=flat :target: https://pypi.python.org/pypi/aerich .. image:: https://img.shields.io/github/license/long2ice/aerich :target: https://github.com/long2ice/aerich .. image:: https://github.com/long2ice/aerich/workflows/pypi/badge.svg :target: https://github.com/long2ice/aerich/actions?query=workflow:pypi .. image:: https://github.com/long2ice/aerich/workflows/test/badge.svg :target: https://github.com/long2ice/aerich/actions?query=workflow:test Introduction ============ Tortoise-ORM is the best asyncio ORM now, but it lacks a database migrations tool like alembic for SQLAlchemy, or Django ORM with it's own migrations tool. This project aim to be a best migrations tool for Tortoise-ORM and which written by one of contributors of Tortoise-ORM. Install ======= Just install from pypi: .. code-block:: shell $ pip install aerich Quick Start =========== .. code-block:: shell $ aerich -h Usage: aerich [OPTIONS] COMMAND [ARGS]... Options: -c, --config TEXT Config file. [default: aerich.ini] --app TEXT Tortoise-ORM app name. [default: models] -n, --name TEXT Name of section in .ini file to use for aerich config. [default: aerich] -h, --help Show this message and exit. Commands: downgrade Downgrade to previous version. heads Show current available heads in migrate location. history List all migrate items. init Init config file and generate root migrate location. init-db Generate schema and generate app migrate location. migrate Generate migrate changes file. upgrade Upgrade to latest version. Usage ===== You need add ``aerich.models`` to your ``Tortoise-ORM`` config first, example: .. code-block:: python TORTOISE_ORM = { "connections": {"default": "mysql://root:123456@127.0.0.1:3306/test"}, "apps": { "models": { "models": ["tests.models", "aerich.models"], "default_connection": "default", }, }, } Initialization -------------- .. code-block:: shell $ aerich init -h Usage: aerich init [OPTIONS] Init config file and generate root migrate location. Options: -t, --tortoise-orm TEXT Tortoise-ORM config module dict variable, like settings.TORTOISE_ORM. [required] --location TEXT Migrate store location. [default: ./migrations] -h, --help Show this message and exit. Init config file and location: .. code-block:: shell $ aerich init -t tests.backends.mysql.TORTOISE_ORM Success create migrate location ./migrations Success generate config file aerich.ini Init db ------- .. code-block:: shell $ aerich init-db Success create app migrate location ./migrations/models Success generate schema for app "models" .. note:: If your Tortoise-ORM app is not default ``models``, you must specify ``--app`` like ``aerich --app other_models init-db``. Update models and make migrate ------------------------------ .. code-block:: shell $ aerich migrate --name drop_column Success migrate 1_202029051520102929_drop_column.json Format of migrate filename is ``{version_num}_{datetime}_{name|update}.json`` Upgrade to latest version ------------------------- .. code-block:: shell $ aerich upgrade Success upgrade 1_202029051520102929_drop_column.json Now your db is migrated to latest. Downgrade to previous version ----------------------------- .. code-block:: shell $ aerich downgrade Success downgrade 1_202029051520102929_drop_column.json Now your db rollback to previous version. Show history ------------ .. code-block:: shell $ aerich history 1_202029051520102929_drop_column.json Show heads to be migrated ------------------------- .. code-block:: shell $ aerich heads 1_202029051520102929_drop_column.json Limitations =========== * Not support ``rename column`` now. * ``Sqlite`` and ``Postgres`` may not work as expected because I don't use those in my work. License ======= This project is licensed under the `MIT <https://github.com/long2ice/aerich/blob/master/LICENSE>`_ License.
Description
Languages
Python
99.3%
Makefile
0.7%