我让AI帮我写个工具网页,它把数据库清空了两次
本来是想花半小时让AI搭个记账小工具,结果从下午两点折腾到天黑,中间AI助手两次清空了我的数据库。过程是这样的。

事情起因很简单。我一直想有个轻量记账工具,不需要花里胡哨的功能,就记录收支、按月汇总。手写嫌麻烦,用现成的App又太重。刚好最近AI编程工具遍地开花,想着让它帮我搞定。
于是打开Cursor,新建项目文件夹,对着对话框输入第一行需求:"帮我做一个个人记账网页,用SQLite存数据,前端简洁一点。"
AI秒回,开始哗啦啦生成代码。三分钟不到,一个带数据库模型、Flask后端、HTML前端的项目结构就出来了。我心想,这也太顺了。
第一版跑起来,页面确实能用。添加收支、查看列表,基础功能都有。
但问题来了——日期显示的是UTC时间,比北京时间晚8小时。
我说:"把时区改成北京时间。"
AI回复:"好的,我来修改。"然后它改了三处代码。
我刷新页面,发现所有之前的记录全没了。
赶紧看代码,AI在修改时区的时候,"顺便"重构了数据库模型,把原来的表drop了重建。新表字段名全变了,旧数据当然一条不剩。
我当时还没当回事。反正测试数据,丢了就丢了。告诉它:"别动数据库结构,只改时区。"
"明白了,我只修改时区相关的代码。"
第二次,它确实没动数据库结构。但它把日期格式函数改了,从datetime换成了手动拼接字符串。结果是时区对了,但月份计算错了一个月——5月的数据全显示成4月。
我又让它修。修完之后日期对了,但这次它"优化"了数据库连接方式,从单例模式改成了每次请求新建连接。SQLite在这种情况下偶尔会锁表,一锁表它就自动重建数据库。
清空,again。
这时候已经快四点了。
我关掉AI,把那几行时区代码手写了。三行,半分钟。然后把它"优化"过的连接池代码也改回原来的单例模式。
到这里工具其实已经能用了。但我不甘心,想看看AI到底能做成什么样。于是开了个新对话,给了更详细的prompt:"做一个记账网页,用FastAPI+SQLite,包含收支分类、按月筛选、简单图表。不要改已有数据库结构,不要删数据,时区用Asia/Shanghai。"
这次好多了。AI按规范写完了全部代码,功能齐全,甚至加了个饼图展示支出分类占比。
但最后一步又出问题了——它装的chart.js是4.x版本,但写的是3.x的API语法。图表一片空白。
我问它:"chartjs你用的哪个版本?"
"我使用的是Chart.js 4.x版本。"
"但你写的是3.x的语法。"
沉默了几秒。"你说得对,让我修正。"
修正之后图表终于出来了。整个工具从零到能用,纯手工的话我大概需要四五个小时。AI帮我写了80%的代码,但我花了三个多小时在修它引入的各种bug上。
一个朋友听了之后说了一句话,我觉得特别精准:**"AI编程像请了个打字极快但从不思考的实习生。"**
这话一点不夸张。它写代码的速度确实惊人,但每写十行就可能在某个犄角旮旯埋一个逻辑雷。数据库被清空这种事故,换人类程序员根本不可能犯两次。AI犯了三次。
不过换个角度想,如果没有AI,我可能根本不会动手做这个工具。启动成本太高了,光是搭项目骨架就够劝退的。AI帮我跨过了从0到1的门槛,虽然一路上磕磕绊绊。
"AI不会取代程序员,但会让更多人变成程序员——代价是每个人都要学会debug AI的代码。"
最终这个小工具还是上线了,我用了一周,挺好用。中间又让AI加了个导出CSV的功能,这次学聪明了,先备份数据再让它动手。
下周同一时间还会分享用AI做数据分析的实测,同样是全程记录,踩过的坑一个都不藏。
夜雨聆风