DBXDBX

Schema 对比

对比两个数据库的结构差异,生成可审查的同步 SQL。

Schema 对比用于检查两个数据库环境之间的结构差异,例如开发库和生产库、测试库和预发库,或迁移前后的数据库。

Schema 同步可能包含删除表、删除字段、修改字段类型等破坏性操作。生成 SQL 后请逐条审查,生产环境建议先备份。

适合的场景

  • 检查开发环境中的结构变更是否已经同步到生产
  • 对齐 staging、QA、production 等多套环境
  • 生成迁移脚本,交给团队审查后执行
  • 对比两个版本数据库之间的表、字段、索引差异

使用流程

选择源库

源库通常是你认为“结构较新”或“结构正确”的数据库。

选择目标库

目标库是需要被检查或同步的数据库。它可以和源库位于不同服务器,也可以是不同数据库引擎。

执行对比

DBX 会读取两边的表、字段和索引元数据,并计算差异。当前对比只处理表,不包含视图。

审查差异

重点检查缺失表、额外表、字段类型变化、是否允许 NULL、默认值变化、索引增删和可能的数据风险。

生成同步 SQL

根据差异生成 CREATE TABLEALTER TABLEDROP TABLE 等语句。确认后再决定是否执行。

差异类型

类型含义
仅源库存在目标库缺少该对象,通常需要创建
仅目标库存在目标库多出该对象,删除前需要确认是否仍被使用
字段差异字段类型、是否允许 NULL 或默认值不同
索引差异按索引名称检查新增或删除的索引

当前 Schema 对比不完整覆盖外键、触发器、视图定义、字段注释,也不会检测同名索引的列或唯一性变化。重要迁移仍建议人工审查生成的 SQL。

数据库覆盖范围

Schema 对比依赖表、字段和索引元数据。它更适合 MySQL、PostgreSQL、SQLite、SQL Server、Oracle、Redshift、DM、GaussDB 系等可以稳定读取关系结构的数据库。Redis、MongoDB、Elasticsearch 的数据模型不同,不适合作为关系型 Schema 同步目标。

执行前检查

同步前建议确认:

  • 当前连接颜色和环境名称是否正确
  • 目标库是否已经备份
  • DROPTRUNCATE、字段类型变更是否符合预期
  • 是否需要在业务低峰期执行
  • 是否需要先在测试环境验证生成的 SQL

相关功能

On this page