我目前正在使用 MySQL 数据库开发应用程序。
数据库结构在开发过程中仍在不断变化和变化(我更改了我的本地副本,仅将一个留在测试服务器上)。
有没有办法比较数据库的两个实例以查看是否有任何更改?
虽然目前简单地丢弃以前的测试服务器数据库很好,但随着测试开始输入测试数据,它可能会变得有点棘手。 同样的情况会在以后的生产中再次发生......
是否有一种简单的方法来增量更改生产数据库,最好是通过自动创建脚本来修改它?
如果您正在使用小型数据库,我发现在两个数据库上运行 mysqldump 并使用--skip-comments和--skip-extended- insert选项来生成 SQL 脚本,那么在 SQL 脚本上运行 diff 效果很好。
--skip-comments
--skip-extended- insert
通过跳过注释,您可以避免无意义的差异,例如运行 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