MySQL表结构同步工具 mysql-schema-sync

MIT
Google Go
跨平台
2015-10-10
undefined

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

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


自动定时运行

添加crontab 任务

30 * * * *  cd /your/path/xxx/ && bash check.sh >/dev/null 2>&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_*
的码云指数为
超过 的项目
加载中

评论(2)

格林斌
格林斌
有没有QQ群讨论之类的。
net ljx
net ljx
新建表,能比对出sql语句,但是远程同步sql就是没成功,没有错误信息输出 #mysql-schema-sync#

mysql-schema-sync v0.2 mysql表结构自动同步工具

mysql-schema-sync 是一款使用go开发的、跨平台的、绿色无依赖的 MySQL 表结构自动同步工具。 用于解决多个环境数据库表结构不同步问题。 支持功能: 1. 同步 新表 2. 同步 字段 变动:新增、...

2015/10/11 09:03

没有更多内容

加载失败,请刷新页面

没有更多内容

暂无问答

All you wanted to know about SQLyog’s Schema Co...

All you wanted to know about SQLyog’s Schema Comparison tool Shubhansh Varshney October 23rd, 2012 MySQL, SQLyog Developers and DBAs often compare and synchronize structures o...

2013/09/26 20:50
19
0
Mysql半同步加orchestrator

Github基于Orchestrator,Consul和GLB实现高可用性目标。 orchestrator用来运行故障监听和故障恢复。我们使用了如下图所示的一个跨数据中心的orchestrator/raft。 Hashicorp公司的用于服务发...

01/16 14:51
417
0
Mysql日志维护策略

Mysql日志维护策略

2015/03/09 22:08
274
0
Linux 运维 12月18日

目录 一、mysql-proxy实现读写分离 二、MYCAT介绍 三、MYCAT分表分库 mysql-proxy 实现读写分离 较为常见的Mysql读写分离分为以下两种 1)基于程序代码内部实现 在代码中根据select 、inser...

2018/12/18 22:46
1
0
mysql日志设置优化

前言 在安装完MySQL之后,肯定是需要对MySQL的各种参数选项进行一些优化调整的。虽然MySQL系统的伸缩性很强,既可以在有很充足的硬件资源环境下高效的运行,也可以在极少资源环境下很好的运行...

2014/08/11 11:27
92
0
MySql主从配置(主从热备份)

环境说明 系统:centos7.5 软件版本:mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz 安装目录:/usr/local/mysql 数据库目录:/data/mysql 数据库root密码:hc123456 A数据库:192.168.2.72 ...

02/22 14:33
19
0
MySQL双主(主主)架构方案与配置Mysql-proxy,实现读写分离

MySQL双主(主主)架构方案 企业中数据库的高可用是必不可缺的。中小企业使用mysql主从方案,一主多从,读写分离等,但单主出现故障时,从库需要切换主库作改动。而如果是双主或多主,就会增...

2018/12/18 22:35
19
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部