我想用 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输出中会导致重复的键错误,如果不进行额外的解析和编辑,这些错误将变得毫无用处。
暂无答案!
目前还没有任何答案,快来回答吧!