mysqldbcompare无法忽略数据库名称差异

bd1hkmkf  于 2021-06-25  发布在  Mysql
关注(0)|答案(0)|浏览(200)

我想用 mysqldbcompare (版本1.6.5)自动生成sql命令,以同步同一服务器上开发和生产数据库的架构。我正在使用以下命令:

mysqldbcompare --server1=client:3306 \
               --server2=client:3306 \
               dev:test\
               --skip-row-count \
               --skip-data-check \
               --skip-checksum-table \
               --skip-table-options \
               --run-all-tests \
               --changes-for=server1 \
               --difftype=sql

文档声称此工具忽略了数据库名称差异。但是,如果两个表之间存在其他差异,则会在sql输出中报告相同的外键约束(数据库名称除外)。例如,如果我克隆一个数据库并进行比较,所有检查都将通过。但是如果我在克隆数据库的表中添加一列,我将看到:

ALTER TABLE `prod`.`Table`
  DROP FOREIGN KEY Table_ibfk_1,
ADD CONSTRAINT Table_ibfk_1 FOREIGN KEY(old_column) REFERENCES `dev`.`Table2`(old_column),
  ADD COLUMN new_column int(4) NULL AFTER old_column;

这是虫子,还是我误会了 mysqldbcompare 文档?似乎应该抑制这些多余的外键命令。它们出现在sql输出中会导致重复的键错误,如果不进行额外的解析和编辑,这些错误将变得毫无用处。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题