数据库差异对比工具

数据库 Schema 对比工具

一、pgAdmin Schema Diff

特点

  • 对 PostgreSQL 支持较好,不支持其他类型数据库
  • 服务可部署在服务端
  • 服务为 B/S 模式

部署脚本(Docker)

docker run -p 5050:80 \
-e "PGADMIN_DEFAULT_EMAIL=admin@domain.com" \
-e "PGADMIN_DEFAULT_PASSWORD=dbPassword" \
-d dpage/pgadmin4:latest

前置约束

  • 源/目标数据库服务器主版本必须相同
  • 可跨服务器比较,只要两端都在 pgAdmin 中注册

官方文档

https://www.pgadmin.org/docs/pgadmin4/development/schema_diff.html

比较操作步骤

  1. 选择源/目标服务器
    在对象比较面板中选择源/目标服务器(可连接或断开,断开时使用时提示输入密码)。

  2. 选择要比较的数据库

    • 比数据库:源/目标服务器 + 数据库
    • 比 schema:源/目标服务器 + 数据库 + schema
  3. 设置忽略项
    Compare 按钮旁下拉菜单可勾选忽略项:

    • Owner(所有者)
    • Whitespace(空白字符:空格、Tab、CRLF)
    • Tablespace(表空间)
    • Grant/Revoke(授权/撤销)
  4. 点击 Compare,得到比较结果。

结果分类(Filter)

右上角 Filter 按四类筛选:

分类 含义
Identical 两端都存在且 DDL 一致
Different 两端都存在但 DDL 不同
Source Only 仅源库存在
Target Only 仅目标库存在

DDL 比较面板

点击任意对象,下方 DDL Comparison 以三列展示:

  1. 源库对象的 DDL
  2. 目标库对象的 DDL
  3. 让目标匹配源所需的差异 SQL

生成同步脚本

  1. 在对象比较面板中勾选要同步的对象
  2. 点击右上角 Generate Script
  3. 新标签页打开 Query Tool,差异 SQL 已填入编辑器
  4. 审阅后在目标库执行

截图示例

pgAdmin Schema Diff 界面1
pgAdmin Schema Diff 界面2
pgAdmin Schema Diff 界面3


二、SQL Schema Compare(TiCodeX)

文档及下载地址

https://github.com/TiCodeX/SQLSchemaCompare

特点

  • 兼容常见数据库(Microsoft SQL Server、MySQL、PostgreSQL,以及 Azure SQL、Amazon RDS 上的 MS-SQL)
  • 需要本地安装程序后连接数据库服务器
  • PC 端软件(支持 Windows、Mac、Linux)
  • macOS 上若提示未签名,需在终端运行命令解除阻止(详见 GitHub 说明)

使用指南

  1. 创建对比项目
  2. 配置源数据库、目标数据库
  3. 设置对比规则

截图示例

SQL Schema Compare 界面1
SQL Schema Compare 界面2
SQL Schema Compare 界面3
SQL Schema Compare 界面4
SQL Schema Compare 界面5

posted @ 2026-09-07 14:18  Hey,Coder!  阅读(5)  评论(0)    收藏  举报