|Standard Operating Procedure (SOP) Standardize the database schema and data change process across different database systems, small or large tables and different tenants.SQL Review100+ lint rules to detect SQL anti-patterns and enforce consistent SQL style in the organization.GitOpsPoint-and-click GitHub and GitLab integration to enable GitOps workflow for changing database.|
|All-in-one SQL EditorWeb-based IDE specifically for performing SQL specific tasks.Data AnonymizationState-of-the-art column level anonymization engine to cover complex situations like subquery, CTE.Database Access ControlOrganization level policy to centralize the database access control.|
|Manage Database Resources A single place to manage environments, database instances, database users for application development, with optional Terraform integration. Policy EnforcementEnforce organization wide SQL Review policy, backup policy and data access policy.SQL Editor Admin modeCLI like experience without setting up bastion.|
|Centralize Change, Query and Admin TasksA single place to perform different tasks on different databases, thus enforce policy and monitor activity accordingly. RBACTwo-level RBAC model mapping to the organization wide privileges and application team privileges respectively.Anomaly Center and Audit Logging Capture all database anomalies, user actions and system events and present them in a holistic view.|
Bytebase is a Database CI/CD solution for the Developers and DBAs. It's the only database CI/CD project included by the CNCF Landscape. The Bytebase family consists of these tools:
- Bytebase Console: A web-based GUI for developers and DBAs to manage the database development lifecycle.
- Bytebase CLI (bb): The CLI to help developers integrate database changes into the existing CI/CD workflow.
- Bytebase GitHub App and SQL Review GitHub Action: The GitHub App and GitHub Action to detect SQL anti-patterns and enforce a consistent SQL style guide during Pull Request.
- Terraform Bytebase Provider: The Terraform provider enables team to manage Bytebase resources via Terraform. A typical setup involves teams using Terraform to provision database instances from Cloud vendors, followed by using Bytebase provider to prepare those instances ready for application use.
|🕊||Developing and Contributing|
|🤺||Bytebase vs Alternatives|
# One-liner installation script from latest release /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/bytebase/install/main/install.sh)"
Live demo at https://demo.bytebase.com
You can also book a 30min product walkthrough with one of our product experts.
- How to Set Up Database CI/CD with GitHub
- How to integrate SQL Review into Your GitLab or GitHub CI/CD
- How to Synchronize Database Schemas
- How to Configure Database Access Control and Data Anonymization for Developer
- Get Database Change Notification via Webhook
- How to Set Up Backup Monitoring with Better Uptime
Manage database from cloud database vendors
- Manage Snowflake
- Manage TiDB
- Manage Supabase PostgreSQL
- Manage render PostgreSQL
- Manage Neon database
💎 Design Principles
|🪶||Dependency Free||Start with a single command
|🔗||Integration First||Solely focus on database management and leave the rest to others. We have native VCS integration with GitHub/GitLab, Terraform Provider, webhook, and etc.|
|💂♀️||Engineering Disciplined||Disciplined bi-weekly release and engineering practice.|
🧩 Data Model
More details in Data Model Doc.
More details in Roles and Permissions Doc.
Bytebase employs RBAC (Role-Based-Access-Control) and provides two role sets at the workspace and project level:
- Workspace roles:
Developer. The workspace role maps to the role in an engineering organization.
- Project roles:
Developer. The project level role maps to the role in a specific team or project.
Every user is assigned a workspace role, and if a particular user is involved in a particular project, then she will also be assigned a project role accordingly.
Below diagram describes a typical mapping between an engineering org and the corresponding roles in the Bytebase workspace
🕊 Developing and Contributing
Bytebase is built with a curated tech stack. It is optimized for developer experience and is very easy to start working on the code:
- It has no external dependency.
- It requires zero config.
- 1 command to start backend and 1 command to start frontend, both with live reload support.
Interactive code walkthrough
Follow Life of a Feature.
Dev Environemnt Setup
- Go (1.19 or later)
Air (our forked repo @87187cc with the proper signal handling). This is for backend live reload.
go install github.com/bytebase/[email protected]
git clone https://github.com/bytebase/bytebase
Start backend using air (with live reload).
air -c scripts/.air.toml
Change the open file limit if you encounter "error: too many open files".
ulimit -n 10240
If you need additional runtime parameters such as --backup-bucket, please add them like this:
air -c scripts/.air.toml -- --backup-region us-east-1 --backup-bucket s3:\\/\\/example-bucket --backup-credential ~/.aws/credentials
Start frontend (with live reload).
cd frontend && pnpm i && pnpm dev
Bytebase should now be running at http://localhost:3000 and change either frontend or backend code would trigger live reload.
🤺 Bytebase vs Alternatives
Bytebase vs Flyway, Liquibase
Either Flyway or Liquibase is a library and CLI focusing on schema change. While Bytebase is an one-stop solution covering the entire database development lifecycle for Developers and DBAs to collaborate.
Another key difference is Bytebase doesn't support Oracle and SQL Server. This is a conscious decision we make so that we can focus on supporting other databases without good tooliing support. In particular, many of our users tell us Bytebase is by far the best (and sometimes the only) database tool that can support their PostgreSQL and ClickHouse use cases.
Bytebase vs Yearning, Archery
Either Yearning or Archery provides a DBA operation portal. While Bytebase provides a collaboration
workspace for DBAs and Developers, and brings DevOps practice to the Database Change Management (DCM).
Bytebase has the similar
Project concept seen in GitLab/GitHub and provides native GitOps integration
Another key difference is Yearning, Archery are open source projects maintained by the individuals part-time. While Bytebase is open-sourced, it adopts an open-core model and is a commercialized product, supported by a fully staffed team releasing new version every 2 weeks.
🤔 Frequently Asked Questions (FAQs)
Check out our FAQ.