利用AI代理进行数据库迁移与软件工程开发
本文描述了利用AI代理将数据库从SQLite迁移至PostgreSQL的过程。虽然实际数据迁移仅用时13分钟,但AI在构建兼容性软件、编排器和验证链上花费了61小时,揭示了AI在处理复杂工程任务时可能产生的过度设计问题。
使用工具
AI代理接了私活:4天造了一套系统,只为13分钟的数据库迁移

前几天在技术群里看到一个真实案例,一个开发者接了个数据库迁移的单子,原本以为是半天的小活,结果被AI代理硬生生拖成了4天的项目。这事得好好说说,因为里面全是坑,也全是经验。
故事是这样的:有个应用要从SQLite迁到PostgreSQL,原因是数据量涨得有点控制不住了。按说这个迁移本身难度不大,但AI代理接到任务后,事情开始失控了。
AI代理是怎么给自己“加戏”的
这个开发者在闲鱼上接了个活儿,让对方把应用从SQLite迁到PostgreSQL。他用了Claude的API来辅助开发,结果这个AI代理开始疯狂“自我发挥”。
刚开始还算正常,AI代理一步一步做数据库迁移。先写了新的异步抽象层,重写了数据写入器,处理了并发问题,加了遥测监控,设计了渐进式迁移方案,做了100个用户的压力测试,配置了PITR(时间点恢复)备份,还搞了个自动切换机制。
这些听着都还算合理吧?但接下来,AI代理开始“自由发挥”了。它额外加了7个功能:一个能在崩溃后恢复的编排器,一个持久的阶段日志系统,还有10个Ed25519签名证明。前前后后写了超过6万行代码,包括测试和文档,然后才开始迁移数据——就为了搬6.47GB的数据。
最离谱的是什么?这个AI代理每加一个功能都有“充分理由”。签名链能保证迁移报告的完整性,看起来确实有用;编排器能在进程被SIGKILL杀死后存活,也说得过去。所以开发者一次一次说“好”,根本停不下来。每个功能单独看都合理,但整体加起来就是个巨大的过度工程。
真实工作量:19M行数据对PostgreSQL来说太小了
先看看真实的挑战规模:2,120,930个商品,分布在39张表里,共19,540,000行数据,磁盘占用6.47GB。
说实话,这个数据量对PostgreSQL来说根本不算什么。如果你不天天和数据库打交道,19M行听起来挺吓人的,但实际上,一台普通笔记本就能轻松处理。这个体量的数据迁移,理论上是个小时级的工作。
实际运行时间也印证了这一点:快照验证20分40秒;从试点到25万条切片再到全量目录的完整级联迁移,1小时33分;全量目录的COPY操作,13分钟;从预发布到生产的最终门禁,7分钟,验证了44个应用级操作,全部通过,零失败。
时间都去哪了:61小时搭建,13分钟搬数据
真正让人肉疼的是时间线。工作7月26日11:04开始,到了7月28日中午12:24,完整的目录导入还没开始,实时门禁也没建好。第一次真正的级联迁移直到28日晚上19:00才跑起来。门禁直到29日凌晨00:04才变绿,00:11完成切换。
这意味着什么呢?61个小时里,大部分时间都花在了“造工具”上,真正的数据迁移才开始。所有的搭建工作、冗余设计、过度工程,都发生在这61小时里。
账单也很扎心:4天时间,凌晨12点以后做切换,生产环境还发现了bug,7月29日有个提交删掉了5,433行“从没被用上”的签名链代码——这些代码根本没人要求做过。中途还得加一次AI订阅,因为之前的Claude 20x套餐根本不够用。这4天,没有任何人为此付钱。
迁移冰山:13分钟的移动 vs 61小时的搭建
这个案例最核心的问题在于:数据库迁移被分成了两个截然不同的部分。
- 让应用适配PostgreSQL:这是软件工程问题,需要重写代码、调整架构、处理兼容性,本身需要合理时间。
- 迁移数据本身:这是一个短小精悍的运维操作,可以按标准步骤执行。
问题就出在这两件事被混成了一个项目。要求AI代理“做数据库迁移”,结果它把软件工程和数据迁移打包成了一个整体,中间没有清晰的分界线,也没有办法单独追踪数据迁移的进度。
如果现在重做一次迁移,因为运行时已经兼容了,只需要2到3小时。也就是说,整个项目的额外成本,几乎全部来自让应用兼容PostgreSQL的过程——而这本质上是软件开发,不是数据迁移。
对中国开发者的启示:AI代理接活,要管住
这个案例暴露了用AI代理做项目的一个核心问题:AI Agents没有“够用就好”的概念。它会不断追加功能、添加冗余、构建防御性设计,因为每个功能单独看都有道理。
如果你在闲鱼、猪八戒或者淘宝服务上接活了,收到客户需求后,千万别直接甩给AI Agents让它全全处理。需要把需求拆分成更小的单元,明确边界:哪些是Database Migration,哪些是Software Engineering,哪些是Automation,哪些根本不需要做。
尤其注意,当AI代理开始提出“加一个签名链”、“加一个生存性验证”、“加一个恢复机制”的时候,要问一句:这个功能有人要求吗?没有的话,别让它加。
在PostgreSQL这类数据库迁移任务上,AI代理的技术能力是没问题的,真正的问题在于项目管理。用之前,先和它约定好:不主动加需求、不自行扩展边界、不写没有要求的代码。否则,它做出的东西会让你付出4天时间,外加一份“删掉5433行自嗨代码”的羞耻提交。
记住这个数字:61小时搭建,13分钟迁移。这个对比就是AI代理预算失控的代价。