mysql-schema-sync MySQL表结构同步工具开源项目

我要开发同款
匿名用户2015年10月10日
44阅读
所属分类Google Go、数据库相关、数据库管理工具
授权协议MIT

作品详情

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

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

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

配置

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

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

配置示例(config.json):

{      //source:同步源      "source":"test:test@(127.0.0.1:3306)/test_0",      //dest:待同步的数据库      "dest":"test:test@(127.0.0.1:3306)/test_1",      //alter_ignore: 同步时忽略的字段和索引      "alter_ignore":{        "tb1*":{            "column":["aaa","a*"],            "index":["aa"]        }      },      //  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"      }}json配置项说明

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

运行#运行同步mysql-schema-sync -conf mydb_conf.json -sync#预览并生成变更sqlmysql-schema-sync -conf mydb_conf.json 2>/dev/null >db_alter.sql

自动定时运行

添加crontab任务

30**** cd/your/path/xxx/&&bashcheck.sh>/dev/null2>&1

参数说明

mysql-schema-sync[-conf][-dest][-source][-sync][-drop]

说明:

#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_*
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论