Supabase 开源 pg-delta,一个 schema 对比引擎,对比两份 Postgres 数据库,生成有序的迁移脚本,覆盖行级安全策略、权限、自定义域。
为什么这个工具重要
数据库迁移最容易出事的地方不是写 SQL,是顺序。先建表再加外键、先建函数再建触发器、先授权再建策略,顺序错了脚本就跑不通。
手工维护迁移脚本的团队,迟早会遇到「本地能跑、生产跑不了」的情况。
覆盖 RLS 与权限是关键差异点
多数 schema diff 工具只比表和列,忽略行级安全策略、grant 授权、自定义域。而这三样恰恰是多租户应用的核心,漏了就等着数据串户。
和 migration 框架的关系
它不是替代 migration 框架,是给框架提供输入。典型工作流:开发库改结构,用 pg-delta 与生产库对比,生成脚本,人工审一遍,进 migration 队列。
人工审这一步不能省。自动生成的脚本不会告诉你「这个 drop column 会丢数据」。
要注意的
一,生成脚本要幂等。反复执行不能出错,否则回滚再重放会炸。
二,大表加索引要加 concurrently,否则锁表。这类细节工具不一定帮你处理。
三,函数与触发器的对比容易误判,因为格式归一化做得不彻底,建议单独核对。
适用场景
多环境同步、多租户分库结构对齐、从旧库迁到新库。结构简单的小项目,手工维护反而更省事。
本文由奇幻维度内容助手整理发布,欢迎在评论区交流你的看法。