加入收藏 | 设为首页 | 会员中心 | 我要投稿 武汉站长网 (https://www.027zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

数据库/SQL 版本管理工具选型指北:Flyway、Liquibase、Byte

发布时间:2022-11-22 15:01:00 所属栏目:MsSql教程 来源:未知
导读: 数据库开发运维作为研发流程上的刚需场景,目前在行业内还尚未形成标准或者主流方案。Zadig 作为云原生持续交付平台mssql数据库软件,我们关注最终产品的稳定性和业务交付能力,势必对该领

数据库开发运维作为研发流程上的刚需场景,目前在行业内还尚未形成标准或者主流方案。Zadig 作为云原生持续交付平台mssql数据库软件,我们关注最终产品的稳定性和业务交付能力,势必对该领域也抱有持续的关注度。

我们有观察到在该领域有国内外大厂发力同样也有后起之秀,今天就这一领域的工具现状做初步的研究和分析,并对这些工具(Flyway、Liquibase、Bytebase、阿里 DMS)如何结合 Zadig 做了一些简要设计 ,希望能够帮助到大家。

Flyway

Flyway (flywaydb.org)是一款开源的数据库版本管理工具,Flyway 可以独立于应用实现管理并跟踪数据库变更,支持数据库版本自动升级,并且有一套默认的规约,无需复杂的配置,Migrations 可以写成 SQL 脚本,也可以写在 Java 代码中,不仅支持 Command Line 和 Java API,还支持 Build 构建工具和 Spring Boot 等,同时在分布式环境下能够安全可靠地升级数据库,支持失败恢复等。

支持数据库类型

支持所有关系型数据库

12306撞库数据_mssql数据库软件_mssql数据库表下载

Flyway 社区版和企业版差异

mssql数据库软件_12306撞库数据_mssql数据库表下载

主要特性工作原理初始化过程使用 flyway 来接管空数据库:flyway 在对应的数据库中创建一个记录 Schema metadata 的表 flyway_schema_history(非空数据库需要使用 baseline 命令进行初始化)Flyway 开始扫描文件系统或者应用 classpath 里变更,变更可以是 SQL 或者 JAVA 编写的。根据版本号依次执行变更。flyway_schema_history 记录每个变更 metadata。变更新版本过程Flyway 扫描文件系统或者应用 classpath 里的变更,小于等于当前数据库中记录的版本的变更不执行,剩余的版本为可以执行的版本根据版本顺序执行Schema 变更记录表更新

也就是说,每次有变更只需要加一个高版本的变更文件,flyway 就可以执行。

结合 Zadig 的实践SQL 变更文件存放在 Git 代码库有新的 SQL 变更提交 PR 到代码库自动触发 Zadig 工作流执行 flyway migrate不同环境的数据库的变更可以使用不同的 flyway.conf 区分Liquibase

Liquibase (liquibase.org/) 是一个用于跟踪、管理和应用数据库变化的开源的数据库重构工具。它将所有数据库的变化(包括结构和数据)都保存在 changelog 文件中,便于版本控制,它的目标是提供一种数据库类型无关的解决方案,通过执行 Schema 类型的文件进行变更。

支持数据库类型Liquibase 社区版和企业版差异

12306撞库数据_mssql数据库软件_mssql数据库表下载

主要特性结合 Zadig 的实践SQL 变更文件存放在 Git 代码库有新的 SQL 变更提交到代码库自动触发 Zadig 工作流执行 liquibase update不同环境的数据库的变更可以使用不同的 liquibase.properties 区分Bytebase

Bytebase(bytebase.com/)是一款开源的数据库 DevOps 工具,面向应用开发和 DBA,管理 Schema(DDL) 和数据(DML)的全生命周期。

支持数据库类型Bytebase 社区版、团队版和企业版差异

mssql数据库软件_mssql数据库表下载_12306撞库数据

主要特性结合 Zadig 的实践

方式一:在 Zadig 中集成 Bytebase bb CLI,可以作为依赖的软件包/打成自定义的构建镜像在 Zadig 中使用

变更的 SQL 放在 Git 仓库中有新的 SQL 变更提交代码库自定触发 Zadig 工作流执行 bb migrate不同的环境通过给命令行传入不同变量的方式区分

方式二:借助 Zadig 自定义工作流强大的扩展能力开发一个「Bytebase 数据变更」任务,参考文档:工作流任务 | Zadig 文档 [1]

触发 Zadig 工作流,利用「Bytebase 数据变更」自动创建工单DBA 在界面上进行工单审批,审批通过并且完成执行工作流收到回调信息继续执行业务变更阿里 DMS

DMS(aliyun.com/product/dms) 是一种集数据管理、结构管理、用户授权、安全审计、数据趋势、数据追踪、BI图表、性能与优化和服务器管理于一体的数据管理服务。

支持数据库类型主要特性结合 Zadig 的实践

在 DMS 上对数据的操作需要通过工单来完成,所以首先借助 Zadig 自定义工作流强大的扩展能力开发一个「DMS 数据变更工单」。参考文档:工作流任务 | Zadig 文档 [1]触发 Zadig 工作流,利用「DMS 数据变更工单」自动创建工单DBA 在 DMS 界面上进行工单审批,审批通过并且完成执行工作流收到回调信息继续执行业务变更

主要差异

文中所列 Flyway、Liquibase、Bytebase、阿里 DMS 的相关差异对比见下图:

mssql数据库表下载_mssql数据库软件_12306撞库数据

后续将推出数据库版本管理工具在 Zadig 上详细实践系列文章,敬请期待...

参考链接:

[1] docs.koderover.com/zadig/settings/custom-task/

Zadig,让工程师更专注创造。

(编辑:武汉站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!