新旧数据库对比,自动对比生成升级SQL语句的方式

    cd /download
    wget https://cdn.mysql.com/archives/mysql-utilities/mysql-utilities-1.6.5.tar.gz
    tar xvf mysql-utilities-1.6.5.tar.gz
    cd mysql-utilities-1.6.5
    python setup.py build
    python setup.py install
    mysqldiff --version
mysqldiff --server1=root:[email protected]:3306 --server2=root:[email protected]:3306  ccos.role:maytest.role --difftype=sql

mysqldiff只能比较结构不能比较数据

mysqldbcompare --server1=root:[email protected]:3306 --server2=root:[email protected]:3306  ccos:maytest  --changes-for=server1 --difftype=sql 
ERROR: The list of objects differs among database ccos and maytest.

没有run-all-tests会报错

mysqldbcompare --server1=root:[email protected]:3306 --server2=root:[email protected]:3306 maytest2:maytest --changes-for=server2 --difftype=sql --run-all-tests

问题
1 新增的表没有新增sql删除的表没有删除表sql,但是会展示表名
2.字段修改插件没办法识别是修改还是删除后再新增
3.表名修改 会当做表删除再新增
4.新增表有数据新增数据sql没有
小结
1.问题1,4应该可以解决字段名和表名修改不好判断,删除再新增容易丢失数据

该功能建议
1.增加数据库备份和数据库还原功能,防止根据插件生成的sql执行出问题
2.根据插件生成的sql需要人工过一遍手动执行,没问题可以上传到svn文件名to.sql ***为版本号。再次升级就不需要人工过一遍直接执行sql

验证
增删修改数据 正常

image.png

你可能感兴趣的:(新旧数据库对比,自动对比生成升级SQL语句的方式)