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

agolangf • 3591 次点击    
这是一个分享于 的项目,其中的信息可能已经有所发展或是发生改变。
mysql-schema-sync 是一款使用go开发的、**跨平台的**、绿色**无依赖**的 MySQL 表结构自动同步工具。 用于将线上(其他环境)数据库结构**变化**同步到测试(本地)环境! 可以解决多人开发,每人都使用独立数据库导致结构不一样的问题! 支持功能: 1.  同步新表 2.  同步字段 变动:新增、修改 3.  同步索引 变动:新增、修改 4.  同步字段、索引 屏蔽变动更新 5.  支持预览(只对比不同步变动) 6.  邮件通知变动结果 ### 配置 参考 默认配置文件  config.json 配置同步源、目的地址。 修改邮件接收人  当运行失败或者有表结构变化的时候你可以收到邮件通知。 默认情况不会对多出的_表、字段、索引_删除。若需要删除_字段、索引_ 可以使用-drop参数。 配置示例(config.json): <pre class="brush:sql;toolbar: true; auto-links: false;">{       //source:同步源       &#34;source&#34;:&#34;test:test@(127.0.0.1:3306)/test_0&#34;,       //dest:待同步的数据库       &#34;dest&#34;:&#34;test:test@(127.0.0.1:3306)/test_1&#34;,       //alter_ignore: 同步时忽略的字段和索引       &#34;alter_ignore&#34;:{         &#34;tb1*&#34;:{             &#34;column&#34;:[&#34;aaa&#34;,&#34;a*&#34;],             &#34;index&#34;:[&#34;aa&#34;]         }       },       //  tables: table to check schema,default is all.eg :[&#34;order_*&#34;,&#34;goods&#34;]       &#34;tables&#34;:[],       //有变动或者失败时,邮件接收人       &#34;email&#34;:{           &#34;send_mail&#34;:false,          &#34;smtp_host&#34;:&#34;smtp.163.com:25&#34;,          &#34;from&#34;:&#34;xxx@163.com&#34;,          &#34;password&#34;:&#34;xxx&#34;,          &#34;to&#34;:&#34;xxx@163.com&#34;       } }</pre> #### json配置项说明 source: 数据库同步源 dest:   待同步的数据库 tables: 数组,配置需要同步的表,为空则是不限制,eg: [&#34;goods&#34;,&#34;order_*&#34;] alter_ignore: 忽略修改的配置,表名为tableName,可以配置 column 和 index,支持通配符 * email : 同步完成后发送邮件通知信息 ### 运行 <pre class="brush:shell; toolbar: true; auto-links: false;">#运行同步 mysql-schema-sync -conf mydb_conf.json -sync #预览并生成变更sql mysql-schema-sync -conf mydb_conf.json 2&gt;/dev/null &gt;db_alter.sql</pre> ### 自动定时运行 添加crontab 任务 30 * * * *  cd /your/path/xxx/ &amp;&amp; bash check.sh &gt;/dev/null 2&gt;&amp;1 ### 参数说明 mysql-schema-sync [-conf] [-dest] [-source] [-sync] [-drop] 说明: <pre>#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_*</pre>
授权协议:
MIT
开发语言:
Google Go 查看源码»
操作系统:
跨平台
3591 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传