用途:比较两个数据库环境(如开发与预发、预发与生产)的架构差异,用于漂移检测、部署前校验和版本升级前后的架构核对,并生成把目标库同步到源的迁移脚本。
主要能力:用 pg_dump --schema-only --no-owner --no-privileges -f schema_source.sql source_db 或 mysqldump --no-data --routines --triggers source_db > schema_source.sql 提取架构;通过 information_schema、pg_catalog、pg_indexes、pg_proc、pg_trigger 等查询比较表、列、索引、约束(主键、外键、唯一、检查)、函数、存储过程、触发器,以及 PostgreSQL 枚举与自定义类型。差异按新增、删除、修改分类,输出差异报告、迁移 SQL、回滚 SQL、对象定义并排对比和漂移检测摘要。
使用方式:需准备两端连接凭据、可连接的 psql 或 mysql CLI、对 information_schema 和 pg_catalog 的读权限,以及运行 pg_dump --schema-only 的权限;明确哪个环境是“事实来源”。生成迁移后先应用到目标库副本并再次运行差异比较,第二次应为零差异。
限制:默认值格式可能因 PostgreSQL 版本规范化方式不同而误报;PostgreSQL 不支持删除或重排枚举值,需新建类型并迁移列;若目标库数据违反新约束,迁移会失败,需先校验与回填。连接被拒、权限不足等错误需分别排查。具体脚本与来源信息暂未提供。