ecdiy-db  - 数据库工具
小码哥 2019-08-17 14:39:41

数据库的持续集成

 

数据库工具,生成差异,执行 SQL 脚本

diff 与 update 为同一文件,运行时程序会自动找对应程序名称的配置文件

diff.exe、update.exe 为 window 系统运行程序;diff update 为 linux运行程序

更多信息请在关注 http://www.ecdiy.cn/article/detail?id=4

类似项目 liqbase

三个脚本说明:

  • diff.jet 生成差异

  • update.jet 执行更新,并且验证是否更改历史

  • execNewest.jet 只执行最新,速度快

  •  

  • 命令说明
    生成差异

    main conf=./conf/diff.xml
    另外一种执行方式,copy main.exe为diff.exe ,运行程序则程序自动找./conf/diff.xml配置文件
    

    快速执行更新

    main conf=./conf/fast-update.xml
    另外一种执行方式,copy main.exe为fast-update.exe ,运行程序则程序自动找./conf/fast-update.xml配置文件
    

    更新,并校验历史SQL

    main conf=./conf/update.xml
    另外一种执行方式,copy main.exe为update.exe ,运行程序则程序自动找./conf/update.xml配置文件
    

liqbase 的缺点:

  • 存储过程支持不好

  • changeLog 不能删除,实际的开发过程,有些 SQL 差异只是过程。如存储过程的改变

<EcParam>
		<Configure>
			<DBBase driver="mysql"
					value="root:root@tcp(127.0.0.1:3306)/ecweb?timeout=30s&amp;strict=true&amp;clientMultiResults=1&amp;clientPSMultiResults=1"/>
		</Configure>
		<Script dir="./conf/script" trimNullLine="1">
			<!-- 执行太慢 	<update.jet db="DBBase" changeLogFile="./conf/db/ecdiyDbChangeLogFile.xml"/> -->
			<execNewest.jet db="DBBase" changeLogFile="./conf/db/ecdiyDbChangeLogFile.xml"/>
		</Script>
</EcParam>