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 进行数据库迁移,并了解其在不同应用场景中的最佳实践。

Python中使用Tortoise ORM连接并操作SQLite数据库,你需要按照以下几个步骤进行: 1. **安装依赖**: 首先确保已经安装了`tortoise-orm`库。你可以通过pip进行安装: ``` pip install tortoise-orm databases ``` 2. **配置数据库**: 在项目文件中(通常是`settings.py`或`config.py`),设置数据库连接信息,比如SQLite的内存数据库(in-memory mode)示例: ```python from tortoise import Tortoise db_url = "sqlite://memory:" # 或者如果你有一个SQLite文件,例如 "my_database.db": # db_url = "sqlite:///my_database.db" Tortoise.init( db_url=db_url, modules={"models": ["your_app_name.models"]} # 指定包含模型的模块路径 ) ``` 3. **定义数据模型**: 创建一个或多个模型(即数据库表结构),继承自`BaseModel`,这个类由Tortoise自动创建,表示数据库的基本特性: ```python from tortoise import fields, models class User(models.Model): username = fields.CharField(max_length=50, unique=True) email = fields.EmailField(unique=True) created_at = fields.DatetimeField(auto_now_add=True) # 添加更多的字段和方法... ``` 4. **连接和迁移**: 运行一次迁移命令来创建数据库表: ```bash tortoise migrations generate tortoise migrate ``` 5. **访问数据库**: 使用`db`上下文管理器获取连接,然后可以开始执行查询操作: ```python async def get_user(username): user = await User.get(username=username) return user ``` 6. **执行CRUD操作**: 对于增删改查操作,可以像操作普通Python对象一样: ```python new_user = User(username="test", email="test@example.com") await new_user.save() # 查询、更新和删除操作... ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

阿雄不会写代码

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

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

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

打赏作者

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

抵扣说明:

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

余额充值