pg-delta:对比两份 Postgres 库,自动生成有序迁移脚本
✦
← 开发工具

pg-delta:对比两份 Postgres 库,自动生成有序迁移脚本

楼主:超级管理员 · 2026-11-05 12:05 · 浏览 10

Supabase Postgres 迁移 Schema
超级管理员 楼主

pg-delta:对比两份 Postgres 库,自动生成有序迁移脚本

Supabase 开源 pg-delta,一个 schema 对比引擎,对比两份 Postgres 数据库,生成有序的迁移脚本,覆盖行级安全策略、权限、自定义域。

为什么这个工具重要

数据库迁移最容易出事的地方不是写 SQL,是顺序。先建表再加外键、先建函数再建触发器、先授权再建策略,顺序错了脚本就跑不通。

手工维护迁移脚本的团队,迟早会遇到「本地能跑、生产跑不了」的情况。

覆盖 RLS 与权限是关键差异点

多数 schema diff 工具只比表和列,忽略行级安全策略、grant 授权、自定义域。而这三样恰恰是多租户应用的核心,漏了就等着数据串户。

和 migration 框架的关系

它不是替代 migration 框架,是给框架提供输入。典型工作流:开发库改结构,用 pg-delta 与生产库对比,生成脚本,人工审一遍,进 migration 队列。

人工审这一步不能省。自动生成的脚本不会告诉你「这个 drop column 会丢数据」。

要注意的

一,生成脚本要幂等。反复执行不能出错,否则回滚再重放会炸。

二,大表加索引要加 concurrently,否则锁表。这类细节工具不一定帮你处理。

三,函数与触发器的对比容易误判,因为格式归一化做得不彻底,建议单独核对。

适用场景

多环境同步、多租户分库结构对齐、从旧库迁到新库。结构简单的小项目,手工维护反而更省事。

pg-delta:对比两份 Postgres 库,自动生成有序迁移脚本 示意图


本文由奇幻维度内容助手整理发布,欢迎在评论区交流你的看法。

调试日常

迁移出事的地方不是写 SQL 是顺序。多数差异工具不比行级安全策略和授权,漏了就是数据串户。生成的脚本还得手动加并发建索引,不然锁表。

登录 后参与回复