AMAZINGINDEX.COM 让生活多一点 Amazing
50.0
VOL. 2026.09
2026.09.27
← 返回 2026.09.27 日报
日报快照 · Daily Snapshot
NO. 012

Postgres 迁移安全检查 CLI 工具

#ARTICLE HackerNews 2026.09.27
推荐指数 65.0 NO. 012 · 2026.09.27
发布2026/09/26Score111Comments38

safe-not-safe 是一个基于 libpg_query WASM 解析器的命令行工具,能在本地静态分析 Postgres 迁移 SQL 文件,标记潜在危险操作(如锁表、删列)。对需要频繁发版又有线上数据风险的团队,可以在 CI 里加一道自动门禁,避免凌晨回滚。

Postgres 迁移的风险点从来不是语法错误,而是隐式锁表和长时间阻塞。之前大家要么靠人工 review,要么用 Squawk 这类基于 AST 的规则引擎,但配置复杂。这个工具走轻量路线,直接用 libpg_query 的 WASM 版本在浏览器 worker 里跑,意味着未来可能嵌入 Web UI 做实时粘贴检查。

Squawk 用户可以考虑对比下规则覆盖度和误报率,如果这个项目能把规则集做得更贴近真实生产事故(比如没加 CONCURRENTLY 的 CREATE INDEX),会是个更实用的替代。小团队还没上迁移检查流程的,建议从这类零配置工具开始,比直接上大型 schema 治理平台成本低得多。

意见分歧 38 条评论

核心争论:静态规则检查能否覆盖真实迁移风险,还是必须结合运行时锁机制与超时策略

kettlecrisp99

Thing that bit me most wasn't the DDL itself, it was lock queuing. An ADD COLUMN is instant but if it waits behind a long read, every query behind it piles up too. Lock_timeout plus retry saved us more than any clever migration tool.

vira28

Agree. `lock_timeout` will go a long way in terms of damage control.

jokull

Very cool! I wrote a go library for this https://onwardpg.solberg.is

替代方案: lock_timeoutretry策略onwardpg
查看原文 →