你的 Postgres 迁移到底安不安全:一个本地优先的校验器
来源:safenotsafe.dev — 97 分 · by vira28
📋 概述
safe-not-safe 是一个"本地优先"的 Postgres 迁移安全检查器:既可以把 DDL 粘进网页,也可以直接用 npx safe-not-safe check 在命令行运行,解析器是在浏览器工作线程里下载并编译的 libpg_query WASM,页面明确写着什么都不会上传、没有遥测。它按上线规则集检查锁表、表重写与灰度发布这几类常见陷阱,例如"给列加常量默认值"在现代 Postgres 上只改元数据、不会重写已有行,"并发建索引"不会阻塞普通写入,"VALIDATE CONSTRAINT"是更安全的外键或检查约束两段式上线的第二步。界面还要求声明目标表规模(5 万行以下、5 万到 500 万、500 万以上),并可以把是否将 DDL 包进事务等选项一并纳入判断。
🔑 核心要点
- 两种用法:网页粘贴 DDL,或 npx safe-not-safe check migration.sql。
- 隐私模型是卖点:什么都不上传、没有遥测,解析在浏览器工作线程里完成。
- 技术底子:libpg_query 17 编译成的 WASM 解析器。
- 规则集对准三类风险:锁表、表重写与灰度发布陷阱。
- 典型判定很具体:常量默认值只改元数据、并发建索引不阻塞写入、VALIDATE CONSTRAINT 是两段式的第二步。
- 判断带上下文:需要声明目标表规模,并可选是否把 DDL 包进事务。
💡 金句
未发现阻塞性写法:被检查的语句避开了上线规则集中常见的锁、重写与灰度陷阱。
👍 0
👎 0
← 返回 Hacker News 首页