eterDB: 支持事务级撤销的Postgres分支
Show HN: EterDB, a Postgres fork that makes it easy to recover from incidents

eterDB是Postgres的一个创新分支,专为解决生产环境事故而设计。它支持事务级撤销,让你能精准回滚单个错误操作,而非整个数据库。无论是误删数据、迁移失误,还是依赖错误写入的连锁反应,eterDB都能一键修复。它兼容PostgreSQL 18,支持时间旅行查询和依赖追踪,让开发者和AI代理都能大胆操作、无畏试错。开源、易部署,eterDB让数据库恢复变得像撤销键一样简单。
这不是一个功能,而是一道护城河。
HN 评论区
20- hasyimibhar
主页上有个例子,讲的是一个 Agent 不小心删掉了一张表。
1. 这个例子简直离谱,我实在想不通为什么一开始就要给 Agent 开放生产数据库的写入权限。真有人这么干吗?我连生产库的连接 URL 都不会放在自己的笔记本上。任何对数据库执行的手动语句,都必须当作战时状态处理,至少要有另一位工程师在你们执行前审核 SQL。
2. 删表很可能直接导致写入失败。大概率这些写入是无法恢复的(尤其是来自用户请求的写入),这可能会导致数据丢失。撤销删表操作并不能解决这个问题。
- micw
这个想法听起来挺有意思。但一想到“让事故恢复变得容易”,我最不想看到的就是一个和大家正在运行的标准版本不一样的分支。如果这是个扩展而不是分支,我会感觉好很多。
- traceroute66
> 在修复了一个由 Clade 生成的 bug 后,我不禁心想:“要是生产库的写入能轻松回滚该多好”。
嗯……
1. “Clade 生成的 bug”。不,那是 PBCAK(Problem Between Chair And Keyboard,即“椅子与键盘之间的问题”),俗称“蠢人没在其他地方测试就直接在生产库上跑 Clade”。看,我帮你改好了。
2. 这个“产品”解决的问题早就有方案了。比如你可以用 Aiven[1] 这样的 SaaS 服务商,他们提供点击即用的 PITR(时间点恢复)方案。或者,也有不止一款 Postgres 备份软件能让你自己动手实现同样的功能。
3. 开箱即用就有 pg_dump。你完全可以在把 Clade 放出来折腾你的数据库之前,先简单跑个 pg_dump。