Bytebase vs Flyway

Bytebase  Flyway 都能为开发人员提供数据库版本控制和变更的能力,但两者在产品定位,产品形态,具体功能和使用方法上等方面都有较大的差异的。本文将对这两个工具进行多个维度的对比。

产品功能定位

Flyway:一个老牌数据库变更版本管理工具,核心能力是将变更脚本发布到数据库,并做好脚本的版本化管理,在被 Redgate 收购后,新能力越来越偏向优先对 SQL Server 的支持。

Bytebase:以 DevOps 理念打造,面向开发者与 DBA 的一站式数据库 CI/CD 工具,提供了围绕数据库变更管理与安全查询的一系列专业能力,并实现了与上下游研发工具预集成。

Flyway 和 Bytebase 都是开源项目,Flyway 作为老牌工具在 GitHub 上积累了更多的星星,而 Bytebase 的增长很快。

产品形态

Flyway:本质是一个命令行工具,近年开始提供一个简单的单机 GUI 界面用于开发工作,生产环境仍然是命令行。

Bytebase:基于 Web 的全图形界面,可以在任意电脑打开,同时提供 API 接口、Terraform provider、命令行等多种模式应对不同研发管理流程。

主要功能对比

部分功能详细对比

1. 变更流程展示

Flyway

Flyway 只能通过命令行执行,或者集成到应用代码中一起发布,并不提供变更流程展示。

flyway -url=jdbc:mysql://localhost/mydatabase -user=myuser -password=mypassword -locations=filesystem:/path/to/sql/migrations migrate
如果需要进行流程展示,需要与 Jenkins 等第三方工具集成。

Bytebase

工单驱动的变更发布。

多环境的流水发布。

2. 变更结果分析

Flyway

需要通过命令行生成相应的离线报告,记录了已安装的脚本的版本、描述、状态和执行时间等。

flyway -url=jdbc:mysql://localhost/mydatabase -user=myuser -password=mypassword -locations=filesystem:/path/to/sql/migrations info

Bytebase

图形化查看变更历史。

下钻后清晰的可视化展示差异对比,同时可以查看变更后的完整表结构。

3. SQL 审核

Flyway

在脚本日志中展示。

Bytebase

可以在 GitLab/GitHub 提交代码时开发者进行 SQL 预审核。

执行前的实时审核。

4. 审核规范配置

Flyway

不支持图形化配置,只能选择是否激活。

Bytebase

支持多种数据库,可选择可过滤,同时可保存为模板用于不同环境不同数据库,同时可以选择规范的告警级别。

5. SQL 查询客户端

Flyway

无相关能力。

Bytebase

支持访问控制与查询脱敏的查询客户端。

 

{{o.name}}
{{m.name}}

猜你喜欢

转载自my.oschina.net/u/6148470/blog/8591831