我必须比较两个MySql数据库数据,我想比较两个MySql架构并找出两个架构之间的区别。
我创建了两个变量Old_Release_DB和New_Release_DB。在Old_Release_DB中,我存储了旧的发布模式,而不是像我删除了一些列之后的一些修改,添加了一些列,重命名了一些列,更改了列属性,如增加数据类型大小(例如:varchar(10)到varchar(50))。比它成为我在New_Release_DB中存储的新发布模式。
现在我想要表名,New_Release_DB中已更改的列名列表,以及列名更改。
实施例,
Table_A Column_Name Add(如果已添加), Table_A Column_Name删除(如果删除), Table_A Column_Name更改(如果其属性已更改)
我在Linux的Shell脚本中尝试它,但我没有得到它。请告诉我如果我可以使用其他脚本,如python或java。
答案 0 :(得分:1)
它还可以生成nessecerary SQL语句,以便从一个方案转换为另一个方案(反之亦然)
上述链接的文档相当不错。入门就像:
mysqldiff --server1=user@host1 --server2=user@host2 test:test
答案 1 :(得分:0)
您可以通过创建数据库转储来比较两个数据库: mysqldump -u your-database-user your-database-name> database-dump-file.sql - 如果您使用密码连接数据库,也可以在mysqldump命令中添加-p选项。
然后将它们与diff进行比较: diff new-database-dump-file.sql old-database-dump-file.sql (可选)您可以通过添加>将差异执行的结果保存到STDOUT重定向的文件中。 databases_diff到上一个命令。
然而,这种比较需要一些眼睛工作 - 你会得到两个文件之间的差异。
答案 2 :(得分:0)
我使用具有架构同步实用程序的mysql Workbench。尝试将更改从开发服务器应用到生产服务器时非常方便。