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

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

作者: 小草_fdba | 来源:发表于2020-11-05 10:23 被阅读0次
        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:pwd@172.22.160.20:3306 --server2=root:pwd@172.22.160.20:3306  ccos.role:maytest.role --difftype=sql
    

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

    mysqldbcompare --server1=root:pwd@172.22.160.20:3306 --server2=root:pwd@172.22.160.20: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:pwd@172.22.160.20:3306 --server2=root:pwd@172.22.160.20: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语句的方式

          本文链接:https://www.haomeiwen.com/subject/kcyivktx.html