天天看点

数据库结构同步工具,数据库版本管理工具,最具效率的开源工具项目地址:https://gitee.com/sunxiaokang/db-control-version-server db-control-version-server

项目地址:https://gitee.com/sunxiaokang/db-control-version-server

db-control-version-server

介绍

数据库结构同步版本控制

  • 取代 Navicat结构同步功能,解决如果源表的列比目标表少,Navicat结构同步功能会造成数据被删除的问题。
  • 同步任意两个环境之间的两个schema 的表,列,索引信息,但两个环境原本的数据记录不变。
  • 解决同一个开发周期,由于产品需求,开发环境表信息变动多次,环境切换时,需要手工记录变动的问题。
  • 解决不同环境之间数据库表结构差异问题。
  • 以source schema 为基准,target schema 为目标,自由选择要同步的变动,提供有页面交互按钮(如下图)。
  • 提供每次同步的差异结果,存为SQL文件,做版本管理。
  • 同步的内容项有: 数据库表,表属性,列名,列属性,索引名,索引属性。
  • 不同步的内容项: 数据表的数据。
  • 目前不支持同步外键和表空间,因为一般现代项目好像不太需要。
  • 目前仅支持Mysql。 
  • 数据库结构同步工具,数据库版本管理工具,最具效率的开源工具项目地址:https://gitee.com/sunxiaokang/db-control-version-server db-control-version-server

软件架构

  • 使用SpringBoot 1.5.9.RELEASE
  • 使用 Flyway 控制版本

安装教程

 A. 配置

  1. 如果要配置单个数据库 schema: 

    规则:

    schema_name: 
             source:
               datasource:
                 url: ${source_1_url:jdbc:mysql://test:3306/database_name?characterEncoding=utf-8&useSSL=false}
                 username: ${source_1_username:root}
                 password: ${source_1_password:123456}
                 driver-class-name: com.mysql.jdbc.Driver
             target:
               datasource:
                 url: ${target_1_url:jdbc:mysql://dev:3306/database_name?characterEncoding=utf-8&useSSL=false}
                 username: ${target_1_username:root}
                 password: ${target_1_password:123456}
                 driver-class-name: com.mysql.jdbc.Driver
       #   schema_name-mysql:
       #     source:
       #       datasource:
       #         url: ${source_1_url:jdbc:mysql://test:3306/database_name-mysql?characterEncoding=utf-8&useSSL=false}
       #         username: ${source_1_username:root}
       #         password: ${source_1_password:123456}
       #         driver-class-name: com.mysql.jdbc.Driver
       #     target:
       #       datasource:
       #         url: ${target_1_url:jdbc:mysql://dev:3306/database_name-mysql?characterEncoding=utf-8&useSSL=false}
       #         username: ${target_1_username:root}
       #         password: ${target_1_password:123456}
       #         driver-class-name: com.mysql.jdbc.Driver
               
  2. Dockerfile 或本地 创建目录
    • 创建目录为生成将要执行的SQL文件路径。
    RUN mkdir -p /var/logs/db_locations/dev/
      RUN mkdir -p /var/logs/db_locations/local/
      RUN mkdir -p /var/logs/db_locations/staging/
      RUN mkdir -p /var/logs/db_locations/online/
      RUN mkdir -p /var/logs/db_locations/test/
               
  3. 如果想配置多个数据库 schema 则放开注释即可

使用说明

  1. 使用IDEA 或 Eclipse 运行 src/main/java/com/system/DBVersionControlServerApplication 
  2. 本地访问 http://localhost:8081/

    登陆 用户名密码为 admin/123456 第一步: 点击 结构同步 ,点击 开始 弹出页面,根据自己需求进行操作,完成后,点击 迁移 此时会生成新的版本,和新的SQL文件可供下载查看 。 3.

    数据库结构同步工具,数据库版本管理工具,最具效率的开源工具项目地址:https://gitee.com/sunxiaokang/db-control-version-server db-control-version-server
    4.
    数据库结构同步工具,数据库版本管理工具,最具效率的开源工具项目地址:https://gitee.com/sunxiaokang/db-control-version-server db-control-version-server
    5.
    数据库结构同步工具,数据库版本管理工具,最具效率的开源工具项目地址:https://gitee.com/sunxiaokang/db-control-version-server db-control-version-server
    6.
    数据库结构同步工具,数据库版本管理工具,最具效率的开源工具项目地址:https://gitee.com/sunxiaokang/db-control-version-server db-control-version-server
    7.
    数据库结构同步工具,数据库版本管理工具,最具效率的开源工具项目地址:https://gitee.com/sunxiaokang/db-control-version-server db-control-version-server
    8.
    数据库结构同步工具,数据库版本管理工具,最具效率的开源工具项目地址:https://gitee.com/sunxiaokang/db-control-version-server db-control-version-server
    9.
    数据库结构同步工具,数据库版本管理工具,最具效率的开源工具项目地址:https://gitee.com/sunxiaokang/db-control-version-server db-control-version-server

注意事项

问题反馈

Email : [email protected]