链氪巴士
  1. 首页
  2. 站点导航
  3. 文章
  4. 快讯
  5. 软件
  6. 书刊
  7. 关于

hidu/mysql-schema-sync:mysql表结构自动同步工具

mysql - schema - sync是一个MySQL表结构自动同步工具,用于将线上数据库Schema变化同步到本地测试环境,仅同步Schema不同步数据。支持同步新表、字段与索引变动,支持预览、邮件通知、屏蔽更新等功能,修复分区表比对问题,支持分区表部分变更,可控制ddl执...

访问官网 →

【Github】项目名:hidu/mysql – schema – sync:mysql表结构自动同步工具

项目简介

mysql – schema – sync是一个MySQL表结构自动同步工具。它主要用于将线上数据库Schema的变化同步到本地测试环境,仅同步Schema而不同步数据。目前支持同步新表、字段变动(新增、修改)、索引变动(新增、修改),支持预览(只对比不同步变动)、邮件通知变动结果,还能支持屏蔽更新表、字段、索引、外键,并且本地可以比线上额外多一些表、字段、索引、外键。在原有基础上修复了比对过程中遇到分区表会终止后续操作的问题,支持分区表除分区以外的变更,还可控制每条ddl执行单个修改以兼容tidb ddl问题。

项目安装与配置

安装方面,可以使用go install github.com/hidu/mysql – schema – sync@master。配置方面,参考默认配置文件config.json来配置同步源、目的地址,还能修改邮件接收人等。例如可以设置同步源(source)、待同步的数据库(dest)、同步时忽略的字段和索引(alter_ignore)、需要同步的表(tables)、忽略检查Schema的表(tables_ignore)以及邮件通知(email)等相关配置。

项目运行

直接运行./mysql – schema – sync – conf mydb_conf.json – sync可进行同步;使用./mysql – schema – sync – drop – conf mydb_conf.json 2>/dev/null > db_alter.sql可预览并生成变更sql;使用shell调度bash check.sh,每个json文件配置一个目的数据库,check.sh脚本会依次运行每份配置,log存储在当前的log目录中;还可添加crontab任务实现自动定时运行,如30 cd/your/path/xxx/&&bash check.sh >/null 2>&1。同时,该工具还有多种参数可以控制其运行行为,如 – conf指定配置文件名称、 – dest指定待同步的数据库、 – drop控制是否对本地多出的字段和索引进行删除等。

项目总结

hidu/mysql – schema – sync为MySQL数据库表结构同步提供了方便的解决方案,功能较为丰富。如果你对这个项目有任何想法或者建议,欢迎在下方留言参与讨论。

项目地址

GitHub链接直达