aerich是Tortoise ORM官方配套的异步数据库迁移工具,用于自动生成、执行和回滚SQL迁移脚本,支持SQLite/MySQL/PostgreSQL,用法类比Django迁移命令。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您在使用Trae进行数据库开发时需要生成迁移脚本,但未获得预期的SQL输出或脚本文件,则可能是由于模型指令未明确指定迁移类型、目标数据库方言或模型结构变更细节。以下是解决此问题的步骤:
一、使用@Chat智能体配合自然语言指令生成迁移脚本
该方法适用于已有模型定义(如Python类)且需快速产出对应数据库变更语句的场景。@Chat智能体可解析代码结构并生成符合目标数据库语法的DDL语句。
1、在Trae对话框中输入:“根据以下Tortoise ORM模型定义,为PostgreSQL生成ALTER TABLE语句,将User模型的email字段从VARCHAR(255)改为VARCHAR(320),并添加非空约束”
2、粘贴完整的models.py中User类定义内容
3、确认AI返回的SQL语句是否包含RENAME COLUMN、ALTER COLUMN TYPE及ADD CONSTRAINT等操作
4、手动校验生成语句与PostgreSQL 14+语法兼容性,特别注意视图依赖检查
二、调用@Builder with MCP智能体执行结构化迁移流程
该方法适用于已连接真实数据库并需同步模型变更至生产环境的全链路场景。@Builder with MCP可直接读取数据库Schema、比对模型差异,并调用tortoise-orm generate -a命令生成可执行迁移脚本。
1、确保trae_config.yaml中已配置正确的TORTOISE_ORM连接参数,包括db_url和apps路径
2、输入指令:“使用Tortoise ORM迁移工具,基于当前models.py生成针对SQLite数据库的增量迁移脚本”
3、等待Trae自动执行tortoise-orm generate -a --app models命令
4、检查输出目录migrations/下是否生成形如a2b3c4d5_add_email_index.py的新脚本文件
5、验证脚本中upgrade函数是否包含正确的aerich.models.Table.add_index调用
三、通过CLI工具trae json-edit注入迁移元数据
该方法适用于迁移脚本已存在但缺失版本标识、依赖关系或目标数据库标记的补救场景。trae json-edit可精准修改迁移配置文件中的关键字段,避免手动编辑引发格式错误。
1、定位迁移配置文件,通常为aerich.json或migrations.json
2、执行指令:trae json-edit --file=aerich.json --path="$.current" --value='"202605151910"'
3、追加依赖声明:trae json-edit --file=aerich.json --path="$.migrations[0].dependencies" --value='["202605141200"]'
4、确认aerich.json中db_version字段与目标数据库实际版本一致
5、运行tortoise-orm upgrade验证元数据是否被正确加载


















