我们希望为一个新的软件版本更新一个旧的数据库模式,该版本需要更改数据库模式(其他列、列重命名、表重命名、数据类型、.)。对于MySQL数据库,是否有任何比较工具可以帮助使旧模式适应新的模式,而不会在可能的情况下丢失任何存储的数据?(免费软件优先)
是的,这些改变是可以手工完成的。但我们正在寻找一种更舒适的方式,并抓住所有的变化。
发布于 2012-06-11 16:01:24
Red现在有一个MySQL比较工具,类似于他们流行的比较工具。
http://mysql-compare.com/info?source=products-a-page
MySQL比较包是免费的非商业用途,个人使用,以及那些在慈善和教育部门。来源:https://www.red-gate.com/products/mysql/mysql-comparison-bundle/index
发布于 2012-06-11 15:45:32
这不是一个非常性感的答案,而是mysqldump & sdiff。
mysqldump -u root -p --no-data -h oldHost databases db1 db2 db3 > /tmp/old.sql
mysqldump -u root -p --no-data -h newHost databases db1 db2 db3 > /tmp/new.sql
sdiff /tmp/old.sql /tmp/new.sqlsdiff会给你一个并排的比较,与差异成对的w/ a>或<指标。我发现这在您描述的确切场景中是有用的。
该示例假设在另一个主机上初始化了新模式,但这肯定不是必需的。它可以是同一主机上的不同实例(例如端口),也可以是具有不同数据库名称的同一个实例。
https://dba.stackexchange.com/questions/19064
复制相似问题