一行代码,数万行数据。零配置智能生成,AI 驱动精准调优。
一、摘要
用 TRAE SOLO 开发了 sqlseed —— 一个声明式 SQLite 测试数据生成工具。只需一行代码,即可为数据库生成十万级高质量测试数据。支持 9 级智能列推断、自动外键维护、流式内存安全、AI 智能配置等特性。项目从零开始,历经 50+ 次提交迭代,最终形成完整的工具包,包含核心引擎、CLI、插件系统、MCP 服务器等模块。
二、背景
我是一名后端开发者,在日常开发和测试中,经常需要为 SQLite 数据库填充大量测试数据。传统方式要么手写 SQL 脚本(繁琐且难以维护),要么使用硬编码的 fixtures(扩展性差),要么使用 Faker/Mimesis 等库逐列配置(工作量大)。
我希望有一个工具能够:
-
零配置:自动推断列类型,智能选择生成器
-
自动维护外键:多表关联时自动处理依赖顺序
-
高性能:支持百万级数据生成,内存占用恒定
-
AI 增强:利用 LLM 分析 Schema 语义,自动生成配置
于是,我决定用 SOLO 从零开始打造这个工具。
三、实践过程
3.1 开发时间线(基于 Git 历史)
整个项目历时约 3 周,经历了以下关键阶段:
| 阶段 | 内容 |
|---|---|
| 阶段一 | 核心引擎开发:DataOrchestrator、ColumnMapper(9级策略链)、DatabaseAdapter、DataProvider Protocol |
| 阶段二 | 插件系统:基于 pluggy 实现 11 个 Hook 点,支持 Provider 注册、批次插入、模板池等扩展 |
| 阶段三 | 列 DAG 与表达式引擎:支持派生列计算(derive_from)、唯一性约束回溯求解、超时保护 |
| 阶段四 | AI 插件开发:SchemaAnalyzer、AiConfigRefiner(自纠正闭环)、Few-shot 示例库 |
| 阶段五 | MCP 服务器集成:让 Claude 等 AI 助手直接操作 sqlseed,实现 inspect_schema、generate_yaml、execute_fill |
| 阶段六 | 优化与加固:安全加固、代码质量提升、性能优化、文档完善 |
3.2 典型开发场景:我是如何与 SOLO 协作的
场景一:设计 9 级列推断策略链
问题:如何让工具自动识别列的语义,选择合适的生成器?比如列名是 email 就生成邮箱,列名是 created_at 就生成时间戳。
给 SOLO 的提示:
“我需要设计一个列映射策略,能够根据列名、类型、约束等信息自动选择数据生成器。要求:1)支持精确匹配(如 email → 邮箱生成器);2)支持模式匹配(如 *_at → 时间戳);3)支持类型回退;4)可扩展。请帮我设计策略链的架构。”
SOLO 的输出:设计了一个 9 级策略链:精确匹配 → 模式匹配 → 类型推断 → 默认回退。每一级都有明确的优先级和匹配规则。
我的调整:在 SOLO 的基础上,我补充了 74 条精确匹配规则(从最初的 68 条扩展),并添加了 UNIQUE 约束的特殊处理逻辑。
场景二:实现流式数据生成,解决内存溢出问题
问题:一次性生成 100 万行数据时,内存直接爆了。
给 SOLO 的提示:
“我需要生成 100 万行测试数据,但一次性加载到内存会 OOM。请帮我设计一个流式生成方案,要求:1)内存占用恒定;2)支持批量写入;3)可中断恢复。”
SOLO 的输出:设计了 DataStream 类,基于 Iterator[list[dict]] 实现,逐批 yield 数据。配合 PragmaOptimizer 三级写入优化,根据数据量自动切换 LIGHT/MODERATE/AGGRESSIVE 策略。
结果:100 万行数据内存占用与 1000 行相同,写入速度达到 42,735 rows/s。
场景三:外键约束导致插入失败
问题:多表关联时,子表先插入导致外键违规。
给 SOLO 的提示:
“我有多个表之间存在外键依赖,填充数据时经常出现 FK 违规错误。请帮我设计一个自动检测依赖并按正确顺序填充的方案。”
SOLO 的输出:实现了 RelationResolver,通过拓扑排序自动检测表依赖关系。同时设计了 SharedPool 机制,跨表共享值池,维持引用完整性。
结果:零配置自动维护外键完整性,用户无需关心填充顺序。
3.3 踩坑与解决
坑一:UNIQUE 约束耗尽导致死循环
当列设置了 UNIQUE 约束且生成器参数空间有限时(如 pattern: "PRJ-\\d{6}" 只有 100 万种可能),生成到后期会频繁冲突,甚至死循环。
解决:让 SOLO 帮我实现了 UniqueAdjuster,自动检测生成器参数空间,动态调整 max_length 等参数。同时添加了超时保护和重试次数限制。
坑二:表达式引擎安全风险
派生列支持表达式计算(如 value[-8:]),但如果用户传入恶意表达式(如 __import__('os').system('rm -rf /')),后果严重。
解决:使用 simpleeval 库,禁用 import、exec、文件 I/O 等危险操作,并添加 5 秒超时保护。
坑三:AI 插件返回无效配置
LLM 有时会返回无效的配置(如引用不存在的生成器类型)。
解决:设计了 AiConfigRefiner 自纠正闭环:自动检测配置错误,向 LLM 发送修正请求,最多 3 轮重试。
四、成果展示
4.1 项目链接
| 平台 | 链接 | 说明 |
|---|---|---|
| GitHub | GitHub - sunbos/sqlseed: 声明式 SQLite 测试数据生成工具包 · GitHub | 主仓库,50+ commits |
| PyPI (sqlseed) | Client Challenge | 核心包 v0.1.15 |
| PyPI (sqlseed-ai) | Client Challenge | AI 插件 |
| PyPI (mcp-server-sqlseed) | https://pypi.org/project/mcp-server-sqlseed/ | MCP 服务器 |
# 安装核心包
pip install sqlseed
# 安装 AI 插件
pip install sqlseed-ai
# 安装 MCP 服务器
pip install mcp-server-sqlseed
# 一键安装全部
pip install sqlseed[all] sqlseed-ai mcp-server-sqlseed[ai]
4.2 文档与示例
| 资源 | 链接 | 说明 |
|---|---|---|
| 架构图 | docs/architecture.md | 系统架构、核心流程、9级策略链等 Mermaid 图 |
| Jupyter 教程 | examples/notebooks/ | 10 个交互式教程 Notebook |
| 中文文档 | README.zh-CN.md | 完整中文使用指南 |
架构图包含:系统架构图、核心编排流程、9级策略链、生成器架构、数据库层架构、列依赖 DAG、AI 插件架构、插件生命周期、配置模型层级等 9 张 Mermaid 图!
4.3 核心功能一览
| 功能 | 说明 |
|---|---|
| 零配置智能生成 | 自动推断 Schema,9 级策略链选择最佳生成器 |
| 31 种生成器 | string, integer, float, email, phone, name, datetime, pattern, foreign_key 等 |
| 流式内存安全 | DataStream 逐批 yield,100 万行内存占用恒定 |
| 自动外键维护 | 拓扑排序 + SharedPool,零配置维持引用完整性 |
| 表达式引擎 | 支持派生列计算,21 个内置函数,超时保护 |
| AI 智能配置 | LLM 分析 Schema,自动生成 YAML 配置,支持自纠正 |
| MCP 服务器 | 让 Claude 等 AI 助手直接操作 sqlseed |
| 插件系统 | 基于 pluggy,11 个 Hook 点,支持自定义 Provider |
4.3 一行代码示例
import sqlseed
result = sqlseed.fill("test.db", table="users", count=100000)
print(result)
# → GenerationResult(table=users, count=100000, elapsed=2.34s, speed=42735 rows/s)
五、效果与总结
5.1 TRAE SOLO 使用数据(来自 Dashboard)
在开发 sqlseed 的过程中,TRAE SOLO 是我最重要的开发伙伴。以下是我的真实使用数据:
| 指标 | 数据 |
|---|---|
| TRAE IDE 使用天数 | 308 天 |
| 代码采纳次数 | 368 次 |
| 其中 Python | 147 次(40%) |
| 其中 Markdown(文档) | 139 次(38%) |
| 其中 JSON(配置) | 58 次(16%) |
| 对话次数 | 239 次(全部通过智能体) |
常用智能体:
-
SOLO Coder — 核心代码生成(主力) -
Code Review Summary — 代码审查与优化建议 -
Refactor Incrementer — 增量重构
常用模型:glm-5.1、glm-4.7、DeepSeek-V4-Pro
从数据可以看出,Python 代码生成和 Markdown 文档撰写几乎各占一半,这说明 SOLO 不仅帮我写代码,还帮我写了大量的 README、CHANGELOG、教程等文档。239 次对话全部通过智能体完成,体现了 SOLO 作为 AI 编程助手的深度整合能力。
5.2 提效数据
-
原本手写测试数据脚本:2-4 小时
-
使用 sqlseed:5 分钟(含配置)
-
提效:95%+
5.3 SOLO 在我流程中的作用
-
架构设计:帮助我拆解复杂问题,设计模块化方案(如 9 级策略链、DataStream 流式架构)
-
代码生成:368 次代码采纳,快速生成样板代码,让我专注于核心逻辑
-
问题排查:帮我分析 bug 原因(如 UNIQUE 约束死循环、FK 违规),提供解决方案
-
文档撰写:139 次 Markdown 生成,帮我写了 README、CHANGELOG、教程等
-
代码审查:通过 Code Review Summary 智能体,持续优化代码质量
-
增量重构:通过 Refactor Incrementer 智能体,安全地进行大规模重构
5.4 可复用方法
-
先设计再编码:让 SOLO 帮你设计架构,再逐步实现
-
分阶段迭代:不要一次性完成所有功能,按模块逐步推进
-
踩坑即文档:遇到问题就记录下来,这些是最好的素材
-
测试驱动:让 SOLO 帮你写测试,保证代码质量
-
善用智能体组合:SOLO Coder 写代码 + Code Review 审查 + Refactor 重构,形成完整开发闭环
5.5 后续规划
-
支持更多数据库:PostgreSQL、MySQL
-
可视化配置界面
-
更强大的 AI 分析能力
感谢 SOLO,让开发效率起飞!




