Python Aerich Tortoise_orm 双向操作MySQL 工具,可以正向操作实体映射类,可以反向操作MySQL数据结构的操作介绍,纯免费

1. 项目介绍


Aerich 是一个用于 TortoiseORM 的数据库迁移工具,类似于 SQLAlchemy 的 Alembic 或 Django ORM 自带的迁移解决方案。通过 Aerich,开发者可以根据模型类对数据库进行迁移操作,确保数据库结构与模型定义保持一致。

Aerich 支持多种数据库操作,包括初始化配置、生成迁移脚本、应用迁移、回滚迁移等。它还支持多数据库配置,适用于复杂的应用场景。

我们一般都是结合fastAPI使用,非常的方便和快捷,具体操作有点像mybaties,但是又有不同

2. 项目快速启动


2.1 安装 Aerich


首先,使用 pip 安装 Aerich:

pip install aerich


2.2 配置 TortoiseORM


在项目中配置 TortoiseORM,并添加 Aerich 的模型配置。以下是一个示例配置:

TORTOISE_ORM = {
    "connections": {"default": "mysql://root:123456@127.0.0.1:3306/test"},
    "apps": {
        "models": {
            "models": ["aerich.models", "your_app.models"],
            "default_connection": "default",
        },
    },
}


2.3 初始化 Aerich


使用以下命令初始化 Aerich 配置:

这里的your_app.settings.TORTOISE_ORM 指的是应用目录,你需要用点一直指定,而不是\或者/

aerich init -t your_app.settings.TORTOISE_ORM


2.4 初始化数据库


初始化数据库并生成迁移记录表:

aerich init-db


2.5 生成迁移脚本


当模型发生变化时,生成迁移脚本:

aerich migrate --name models


2.6 应用迁移


将生成的迁移脚本应用到数据库:

aerich upgrade

2.7 生成和迁移的使用

# 生成迁移文件
aerich -t config.TORTOISE_ORM migrate

# 将迁移文件应用到数据库
aerich -t config.TORTOISE_ORM upgrade

# 生曾一个models文件存储实体
aerich --app models inspectdb > models.py 


3. 应用案例和最佳实践


3.1 多数据库配置


Aerich 支持多数据库配置,适用于复杂的应用场景。以下是一个多数据库配置的示例:

TORTOISE_ORM = {
    "connections": {
        "default": "mysql://root:123456@127.0.0.1:3306/test",
        "second": "postgres://user:password@localhost:5432/test",
    },
    "apps": {
        "models": {
            "models": ["aerich.models", "your_app.models"],
            "default_connection": "default",
        },
        "models_second": {
            "models": ["your_app.models_second"],
            "default_connection": "second",
        },
    },
}

3.2 回滚迁移


如果需要回滚到之前的版本,可以使用以下命令:

aerich downgrade


3.3 查看迁移历史


查看所有迁移记录:

aerich history


查看当前可用的迁移记录:

aerich heads


4. 典型生态项目


4.1 TortoiseORM


TortoiseORM 是一个异步 ORM,适用于 Python 的异步框架,如 FastAPI 和 Sanic。Aerich 作为 TortoiseORM 的官方迁移工具,与其紧密集成,提供了完整的数据库迁移解决方案。

4.2 FastAPI


FastAPI 是一个现代、快速的 Web 框架,基于 Python 的异步特性。结合 TortoiseORM 和 Aerich,可以快速构建高性能的异步 Web 应用,并轻松管理数据库迁移。

4.3 Sanic


Sanic 是另一个高性能的异步 Web 框架,与 TortoiseORM 和 Aerich 结合使用,可以实现高效的数据库操作和迁移管理。

通过以上模块的介绍,您可以快速上手使用 Aerich 进行数据库迁移,并了解其在不同应用场景中的最佳实践。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿雄不会写代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值