mysql-schema-sync 是一款使用 Go 开发跨平台的 MySQL 表结构自动同步工具。主要用于解决多个环境数据库表结构不同步问题。
mysql-schema-sync 支持功能:
同步新表
同步字段 变动:新增、修改
同步索引 变动:新增、修改
支持预览(只对比不同步变动)
邮件通知变动结果
支持屏蔽更新表、字段、索引、外键
支持本地比线上额外多一些表、字段、索引、外键
项目地址:https://github.com/hidu/mysql-schema-sync
安装
mysql-schema-sync 的安装非常简单,开箱即用。
注:GOPATH 是作为编译后二进制的存放目的地和 import 包时的搜索路径。GOPATH 之下主要包含三个目录: bin、pkg、src。
src 存放源代码(比如:.go .c .h .s等)。
pkg 存放编译后生成的文件(比如:.a)。
bin 存放编译后生成的可执行文件。
配置
mysql-schema-sync 默认配置文件是 config.json,默认在 src/github.com/hidu/mysql-schema-sync/ 目录里。
配置文件示例
主要配置项说明
运行
mysql-schema-sync 命令使用语法
mysql-schema-sync 参数说明
预览并生成变更SQL
默认情况下,不会直接把变更应用到目标数据库的。
直接生成变更并同步到目标库
同时同步到多个目标库
官方有提供一个 SHELL 脚本 可以同时在多个库间同步。只需为要同步的多个库生成多个以 .json 为后缀的配置文件, 脚本会依次运行每份配置。
脚本默认在当前目录调用 mysql-schema-sync,这里需要根据实际情况修改下:
运行脚本,完成后会在当前目录的 log 目录下记录每次运行后的日志。
定时完成数据库同步
如果你需经常定时同步数据库,可以按下格式配置一个计划任务:
参考文档
http://www.google.com
https://github.com/hidu/mysql-schema-sync
今日思想
低头不是认输,是要看清自己的路;昂头不是骄傲,是要看清自己的天空。
——科比·布莱恩特
领取专属 10元无门槛券
私享最新 技术干货