zoukankan      html  css  js  c++  java
  • MySQL表结构同步工具 mysql-schema-sync

    mysql-schema-sync 是一款使用go开发的、跨平台的、绿色无依赖的 MySQL 表结构自动同步工具。
    用于将线上(其他环境)数据库结构变化同步到测试(本地)环境!

    可以解决多人开发,每人都使用独立数据库导致结构不一样的问题!

    支持功能:

    1. 同步新表
    2. 同步字段 变动:新增、修改
    3. 同步索引 变动:新增、修改
    4. 同步字段、索引 屏蔽变动更新
    5. 支持预览(只对比不同步变动)
    6. 邮件通知变动结果

    ### 配置

    参考 默认配置文件 config.json 配置同步源、目的地址。
    修改邮件接收人 当运行失败或者有表结构变化的时候你可以收到邮件通知。

    默认情况不会对多出的表、字段、索引删除。若需要删除字段、索引 可以使用-drop参数。

    安装:
    方法1:
      直接使用安装包mysql-schema-sync_0.3.tar.gz解压就可以使用(本人自己压缩的,暂不提供下载功能,需要请邮件:af.neo@foxmail.com)
    方法2:
      # yum -y install go git
      # go get -u github.com/hidu/mysql-schema-sync

    ################################################################################

    使用:
    1.配置文件config.json
    配置示例(config.json):

    {
          //source:同步源
          "source":"mysql_user:mysql_user_password@(127.0.0.1:3306)/databaseName1",
          //dest:待同步的数据库
          "dest":"mysql_user:mysql_user_password@(127.0.0.1:3306)/databaseName2",
          //alter_ignore: 同步时忽略的字段和索引
          "alter_ignore":{
            "tb1*":{
                "column":["aaa","a*"],
                "index":["aa"],
                "foreign":[]
            }
          },
          //  tables: table to check schema,default is all.eg :["order_*","goods"]
          "tables":[],
          //有变动或者失败时,邮件接收人
          "email":{
              "send_mail":false,
             "smtp_host":"smtp.163.com:25",
             "from":"xxx@163.com",
             "password":"xxx",
             "to":"xxx@163.com"
          }
    }

    精简示例
    {
      "source":"root:123456@(127.0.0.1:3306)/test",
      "dest":"root:123456@(127.0.0.1:3306)/test2",
      "tables":[]
    }

    json配置项说明
    source: 数据库同步源
    dest: 待同步的数据库
    tables: 数组,配置需要同步的表,为空则是不限制,eg: ["goods","order_*"]
    alter_ignore: 忽略修改的配置,表名为tableName,可以配置 column 和 index,支持通配符 *
    email : 同步完成后发送邮件通知信息

    2.运行命令
    #直接运行
    ./mysql-schema-sync -conf mydb_conf.json -sync
    #预览并生成变更sql
    ./mysql-schema-sync -conf mydb_conf.json 2>/dev/null
    ./mysql-schema-sync -conf mydb_conf.json 2>/dev/null >db_alter.sql


    命令参数说明:
    #mysql-schema-sync -help
    -conf string
    配置文件名称
    -dest string
    mysql 同步源,eg test@(127.0.0.1:3306)/test_0
    -drop
    是否对本地多出的字段和索引进行删除 默认否
    -source string
    待同步的数据库 eg: test@(10.10.0.1:3306)/test_1
    该项不为空时,忽略读入 -conf参数项
    -sync
    是否将修改同步到数据库中去,默认否
    -tables string
    待检查同步的数据库表,为空则是全部
    eg : product_base,order_*

    官方下载地址及说明
    https://gitee.com/hidu/mysql-schema-sync

  • 相关阅读:
    Park Visit
    1894: 985的方格难题
    985的数字难题
    Highways
    最短路
    SQL内容补充
    8.前端资源优化
    7.CSRF攻击和文件上传漏洞攻击
    6.XSS攻击方式及防御措施
    5.避免重复提交表单
  • 原文地址:https://www.cnblogs.com/chenqs/p/8465499.html
Copyright © 2011-2022 走看看