mysql-schema-sync

MySQL表结构同步工具
授权协议 MIT
开发语言 Google Go
所属分类 数据库相关、 数据库管理工具
软件类型 开源软件
地区 国产
投 递 者 李明贤
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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_*
  • 非主从同步情况下,很多方式只能同步数据,而源库表结构一旦被修改,被同步端将无法同步数据 mysql-schema-sync 用于实现表结构同步 github地址:GitHub - hidu/mysql-schema-sync: mysql表结构自动同步工具(目前只支持字段、索引的同步,分区等高级功能暂不支持) centos7 安装 mysql-schema-sync 需要 go 环境支持 1、安装

  • 下载即用 mysql-schema-sync 是一款使用 Go 开发跨平台的 MySQL 表结构自动同步工具。主要用于解决多个环境数据库表结构不同步问题。 mysql-schema-sync 支持功能: 同步新表 同步字段 变动:新增、修改 同步索引 变动:新增、修改 支持预览(只对比不同步变动) 邮件通知变动结果 支持屏蔽更新表、字段、索引、外键 支持本地比线上额外多一些表、字段、索引、外键 项

  • mysql-schema-sync mysql表结构自动同步工具 用于将 线上 数据库结构变化同步到 本地环境! 支持功能: 同步新表 同步字段 变动:新增、修改 同步索引 变动:新增、修改 支持预览(只对比不同步变动) 邮件通知变动结果 支持屏蔽更新表、字段、索引、外键 支持本地比线上额外多一些表、字段、索引、外键 ###安装 go get -u github.com/hidu/mysql-sc

  • 平时在工作中会遇到某个测试环境服务正常,其它测试环境不可用,通过日志排查数据库表不存在或者表字段不存在,偶尔一两次手动同步还可以接受,但是当服务较多、快速迭代时会经常出现xxx上线后忘记同步测试环境数据库的时候,影响效率而且内心难以接受。 于是为了解决这个问题在网上搜索了一番,发现大佬使用 Go 语言开源了表结构同步工具 mysql-schema-sync ,使用文档也非常详细,接下来看看这款工具

  • mysql-schema-sync 是一款使用 Go 开发跨平台的 MySQL 表结构自动同步工具。主要用于解决多个环境数据库表结构不同步问题。 mysql-schema-sync 支持功能:同步新表 同步字段 变动:新增、修改 同步索引 变动:新增、修改 支持预览(只对比不同步变动) 邮件通知变动结果 支持屏蔽更新表、字段、索引、外键 支持本地比线上额外多一些表、字段、索引、外键 项目地址:ht

  • mysql-schema-sync 是一款使用 Go 开发跨平台的 MySQL 表结构自动同步工具。主要用于解决多个环境数据库表结构不同步问题。 mysql-schema-sync 支持功能: 同步新表 同步字段 变动:新增、修改 同步索引 变动:新增、修改 支持预览(只对比不同步变动) 邮件通知变动结果 支持屏蔽更新表、字段、索引、外键 支持本地比线上额外多一些表、字段、索引、外键 安装 mys

  • import os,sys import json import pymysql def get_m_json(filepath,key,value): key_ = key.split(".") key_length = len(key_) with open(filepath, 'r') as f: json_data = json.load(f) i = 0 a = json_data wh

  • mysql-schema-sync mysql表结构自动同步工具 用于将 线上 数据库结构变化同步到 本地环境! 支持功能: 同步新表 同步字段 变动:新增、修改 同步索引 变动:新增、修改 支持预览(只对比不同步变动) 邮件通知变动结果 支持屏蔽更新表、字段、索引、外键 支持本地比线上额外多一些表、字段、索引、外键 安装 go get -u github.com/hidu/mysql-schem

  • mysql-schema-sync mysql表结构自动同步工具 用于将 线上 数据库结构变化同步到 本地环境! 支持功能: 同步新表 同步字段 变动:新增、修改 同步索引 变动:新增、修改 支持预览(只对比不同步变动) 邮件通知变动结果 支持屏蔽更新表、字段、索引、外键 支持本地比线上额外多一些表、字段、索引、外键 安装 go get -u github.com/hidu/mysql-schem

  • mysql-schema-sync mysql表结构自动同步工具 用于将 线上 数据库结构变化同步到 本地环境! 支持功能: 同步新表 同步字段 变动:新增、修改 同步索引 变动:新增、修改 支持预览(只对比不同步变动) 邮件通知变动结果 支持屏蔽更新表、字段、索引、外键 支持本地比线上额外多一些表、字段、索引、外键 安装 go get -u github.com/hidu/mysql-schem

  • mysql-schema-sync 是一款使用go开发的、跨平台的、绿色无依赖的 MySQL 表结构自动同步工具。 用于将线上(其他环境)数据库结构变化同步到测试(本地)环境! 可以解决多人开发,每人都使用独立数据库导致结构不一样的问题! 支持功能: 同步新表 同步字段 变动:新增、修改 同步索引 变动:新增、修改 同步字段、索引 屏蔽变动更新 支持预览(只对比不同步变动) 邮件通知变动结果 ##

  • 数据库表同步 摘要 在项目中期阶段,我们不同环境的数据库结构同步会出现很多的问题,例如我们要部署生产环境时,由于一个字段同步漏了,生产环境的程序就可能会出问题,于是就可以使用“mysql-schema-sync”工具来生成数据库同步脚本 golang 、git环境安装 yum install go git 命令 go version 查看 go 环境是否安装成功 进入 /usr/lib/gola

  • mysql-schema-sync 是一款使用go开发的、跨平台的、绿色无依赖的 MySQL 表结构自动同步工具。 用于解决多个环境数据库表结构不同步问题。 支持功能: 同步 新表 同步 字段 变动:新增、修改、删除 同步 索引 变动:新增、修改、删除 支持 预览(只对比不同步变动) 邮件通知变动结果 支持屏蔽更新 表、字段、索引 支持本地比线上额外多一些表、字段、索引 文章转载自 开源中国社区[

  • mysql-schema-sync mysql表结构自动同步工具 用于将 线上 数据库结构变化同步到 本地环境! 支持功能: 同步新表 同步字段 变动:新增、修改 同步索引 变动:新增、修改 支持预览(只对比不同步变动) 邮件通知变动结果 支持屏蔽更新表、字段、索引、外键 支持本地比线上额外多一些表、字段、索引、外键 安装 go get -u github.com/hidu/mysql-schem

  • mysql-schema-sync mysql表结构自动同步工具 用于将 线上 数据库结构变化同步到 本地环境! 支持功能: 同步新表 同步字段 变动:新增、修改 同步索引 变动:新增、修改 支持预览(只对比不同步变动) 邮件通知变动结果 支持屏蔽更新表、字段、索引、外键 支持本地比线上额外多一些表、字段、索引、外键 ###安装 go get -u github.com/hidu/mysql-sc

 相关资料
  • 除了简单的单向绑定和双向绑定,MVVM还有一个重要的用途,就是让Model和DOM的结构保持同步。 我们用一个TODO的列表作为示例,从用户角度看,一个TODO列表在DOM结构的表现形式就是一组<li>节点: <ol> <li> <dl> <dt>产品评审</dt> <dd>新款iPhone上市前评审</dd>

  • 同步能够部分智能的根据结构体的变动检测表结构的变动,并自动同步。目前有两个实现: Sync Sync将进行如下的同步操作: * 自动检测和创建表,这个检测是根据表的名字 * 自动检测和新增表中的字段,这个检测是根据字段名 * 自动检测和创建索引和唯一索引,这个检测是根据索引的一个或多个字段名,而不根据索引名称 调用方法如下: err := engine.Sync(new(User), ne

  • 主要内容:DESCRIBE:以表格的形式展示表结构,SHOW CREATE TABLE:以SQL语句的形式展示表结构创建完数据表之后,经常需要查看表结构(表信息)。在 MySQL 中,可以使用 DESCRIBE 和 SHOW CREATE TABLE 命令来查看数据表的结构。 DESCRIBE:以表格的形式展示表结构 DESCRIBE/DESC 语句会以表格的形式来展示表的字段信息,包括字段名、字段数据类型、是否为主键、是否有默认值等,语法格式如下: DESCRIBE <表名>; 或简写成: D

  • 本文向大家介绍rsync 只同步目录结构不同步文件的方法,包括了rsync 只同步目录结构不同步文件的方法的使用技巧和注意事项,需要的朋友参考一下 If you are using an older rsync version, try:

  • Navicat 让你以详细分析的进程比对及修改表结构。换句话说,Navicat 比对两个数据库和/或模式之间的表及显示其结构的差異处。从主菜单选择 工具 -> 结构同步。 要打开已保存的设置文件,在 设置文件 选项卡中选择设置文件及点击 加载 按钮或双击设置文件。 注意:只限于 MySQL、Oracle、PostgreSQL、SQL Server 和 MariaDB。Navicat Premium

  • 本文向大家介绍MySQL修改表结构操作命令总结,包括了MySQL修改表结构操作命令总结的使用技巧和注意事项,需要的朋友参考一下 表的结构如下: 删除列: 添加列: 修改列,把number修改为bigint: 或者是把number修改为id,类型为bigint: 添加主键: 删除主键: 添加唯一索引: 为name这一列创建了唯一索引,索引的名字是name_unique_index. 添加普通索引: