我目前正在使用MySQL数据库开发应用程序。
数据库结构仍在不断变化中,并且随着开发的进展而变化(我更改了本地副本,仅将其保留在测试服务器上)。
有没有一种方法可以比较数据库的两个实例以查看是否有任何更改?
尽管当前只是简单地丢弃以前的测试服务器数据库是可以的,但是随着测试开始输入测试数据,它可能会有些棘手。 相同但更多,稍后将在生产中再次发生...
有没有一种简便的方法可以增量地更改生产数据库,最好是自动创建一个脚本来对其进行修改?
如果您正在使用小型数据库,我发现两个数据库都使用--skip-comments和--skip-extended-insert选项在mysqldump上运行以生成SQL脚本,那么在SQL脚本上运行diff效果很好。
通过跳过注释,可以避免无意义的差异,例如运行mysqldump命令的时间。通过使用--skip-extended-insert命令,可以确保每行都使用自己的插入语句插入。这消除了单个新记录或修改后的记录可能在以后所有插入语句中引起连锁反应的情况。使用这些选项运行会产生较大的转储而没有注释,因此这可能不是您在生产中要执行的操作,但是对于开发来说应该没问题。我在下面放置了一些命令示例:
mysqldump --skip-comments --skip-extended-insert -u root -p dbName1>file1.sql mysqldump --skip-comments --skip-extended-insert -u root -p dbName2>file2.sql diff file1.sql file2.sql
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。