Bytebase vs. Liquibase: a side-by-side comparison for database schema migration
If Liquibase is Git, then Bytebase is GitHub/GitLab.
When looking for a database CI/CD and schema migration change tool, Bytebase and Liquibase are two common options. Understanding the differences between these two tools can help potential users choose the one that best meets their needs.
What Bytebase and Liquibase have in common
- Native SQL supported.
- Database CI/CD with version control system #GitOps (see Database GitOps configuration).
- Auto SQL check (see Auto SQL check).
- Schema Synchronization (see Sync schema).
- Tiered pricing, offering both free and paid plan.
- Open source, Liquibase has a long history, while Bytebase is growing faster.
What are the differences between Bytebase and Liquibase?
While both Bytebase and Liquibase are tools for database CI/CD, there are some key differences between the two. Liquibase main product is its CLI and the java library. Bytebase also provides a CLI, while its main product is the GUI-based workspace for developers and DBAs to collaborate.
Liquibase | Bytebase | |
---|---|---|
Product position | Schema change | Schema Change |
Developer interface | CLI | GUI, API |
Supported databases | 50 | 13 |
Programming language and installation | Java + JVM | Golang and no other dependency |
Change execution | Changelog + CLI | Issue + GUI |
Batch Change | - | ✅ Multi-environment / Multi-tenant |
Database GitOps | ✅ | ✅ |
SQL auto check | ✅ Paid version | ✅ Available in Free version |
Approval flow | - | ✅ |
Change history | ✅ | ✅ |
Sync schema | ✅ | ✅ |
Rollback | ✅ Manual | ✅ Auto generated rollback statement |
Schema drift detection | ✅ Manual | ✅ Auto |
Slow query detection and advisor | - | ✅ |
Data access control, security and compliance | - | ✅ |
Product position
-
Liquibase: A database schema change and version control tool. It helps you track, manage, and automate changes to your database.
-
Bytebase: In addition to database schema change and version control, Bytebase also provides data query, security, and governance features. It provides a GUI based collaboration workspace that helps DBAs and Developers manage the database development lifecycle.
Developer interface
- Liquibase: A command-line tool. A simple graphical user interface (GUI) called Liquibase Hub is available with the Pro Plan, but it has sunset in May 2023.
- Bytebase: A web-based GUI tool. It also provides application programming interface (API), Terraform Provider, and GitHub App.
Supported databases
- Liquibase: 50 - IBM DB2, MS SQL Server, Oracle, PostgreSQL, MySQL, Snowflake, MongoDB, ClickHouse ...
- Bytebase: 13 - MySQL, PostgreSQL, ClickHouse, Snowflake, MongoDB, Redis, Redshift, Oracle, MS SQL Server ...
Installation
- Liquibase: Java-based tool, so you need to install a Java Virtual Machine (JVM) before users can install Liquibase.
- Bytebase: Go-based tool, a self-contained binary with no external dependency. Also provides Docker and Kubernetes deployment.
Change execution
- Liquibase: CLI or GitOps. Users specify the changes by defining a
changelog
and then run a command.
-
Bytebase: Web-based GUI or GitOps. Users create issues with SQL which could be approved. An issue may include SQL running against one database, or batch change against multiple databases span across different development environments and different tenants.
Users can create tenant project to facilitate batch change. In tenant mode, users can do advanced canary release.
Users can also do online schema change for large tables to reduce downtime from hours to seconds.
Database GitOps configuration
-
Liquibase: Integrate with VCS CI workflow.
-
Bytebase: Point-and-Click GitOps workflow setup.
You may even enable SQL Review in GitLab automatically by clicking a checkbox while configuring GitOps workflow. (which is not in the video)
Check the video: Setting up GitLab VCS integration for Bytebase (GitOps)
Because Bytebase has the similar project concept as seen in GitLab/GitHub, the GitOps integration is nature to the developers.
SQL auto check
SQL auto check helps developers write less buggy SQL and save DBAs manual review efforts.
- Liquibase: SQL Quality check
- Bytebase: SQL Review
Supported Plan
- Liquibase: Only in Pro Plan and above
- Bytebase: Available in Free Plan
Number of rules
- Liquibase: 10 general rules
- Bytebase: 49 rules for MySQL, 38 rules for PostgreSQL, 18 rules for Oracle ...
How to configure
- Liquibase: Predefined, users may set levels while calling.
- Bytebase: Rules are predefined, users can activate and choose error level for specific rules. The picked rule set will make a reusable policy which can be applied to environment, e.g.
Test
,Staging
,Prod
.
How to trigger
-
Liquibase: Run
check
command or manually integrate this command in automation. Users may go to admin console to view logs. -
Bytebase: Three places to trigger SQL review by default, users may manually integrate it to other scenarios by API as well:
-
When a database change is created as an issue.
-
When users query data from SQL Editor.
-
When users enable GitOps workflow, before a new SQL is merged into the main branch.
-
Approval flow
- Liquibase: Not supported.
- Bytebase: Basic rollout and risk-based custom approval flow.
Change history
-
Liquibase: Simple Database Change Logs.
-
Bytebase: Change History tracking diffs and the originated issue.
Sync schema
- Liquibase: Support
diff-changelog
to compare databases and to create a deployable changelog to sync. - Bytebase: Choose a specific schema version, auto calculate the diff with selected databases.
Rollback
- Liquibase: Support
rollback-one-changeset
orrollback
. - Bytebase: By using sync schema, users may revert to a specific version. Also support auto rollback.
Schema drift detection
- Liquibase: Not supported.
- Bytebase: Will auto detect schema diff if someone manipulates the schemas out of Bytebase.
Slow query detection and advisor
- Liquibase: Not supported.
- Bytebase: Will auto detect slow queries and send weekly summary report. Provide an AI-based index advisor to provide query optimization advice.
Data access control, security and compliance
-
Liquibase: Not supported.
-
Bytebase: With centralized SQL Editor, data access is controlled, reviewed, audit-logged. Also provide data masking, watermark.
Bytebase supports RBAC, e.g. developers need to require permission to access or export databases via SQL Editor.
Everything that happened within Bytebase will be recorded for audit purposes.
Bytebase also supports SSO, IM webhook and etc.
Summary
To summarize, Bytebase and Liquibase are both viable options for database CI/CD. Liquibase deliver its feature via its CLI, while Bytebase offers a GUI-based collaboration space.
As an analogy, Liquibase is Git for database, and Bytebase is GitHub/GitLab for database. Git is good for local and personal use. On the other hand, for team development which needs collaboration, review, access control and etc, GitHub/GitLab is more suitable.
Related comparisions: