Live Demo • Install • Help • Development • Design Doc • Discord
Bytebase is a Database CI/CD solution for the Developers and DBAs. It's the only database CI/CD project included in 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 MySQL and PostgreSQL schema change 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.
✅ MySQL ✅ PostgreSQL ✅ TiDB ✅ ClickHouse ✅ Snowflake
GitOps workflow, database-as-Code, login with VCS account, project membership sync.
✅ GitLab CE/EE ✅ GitHub.com
- Web-based database change and management workspace for teams
- SQL Review
- UI based change workflow
- Version control based change workflow (Database-as-Code)
- SQL Review Rules
- Built-in SQL Editor
- Detailed migration history
- Multi-tenancy (rollout change to homogeneous databases belonged to different tenants)
- Online schema change based on gh-ost
- Backup and restore
- Point-in-time recovery (PITR)
- Anomaly center
- Environment policy
- Approval policy
- Backup schedule enforcement
- Schema drift detection
- Backward compatibility schema change check
- Role-based access control (RBAC)
- Webhook integration for Slack, Discord, MS Teams, DingTalk(钉钉), Feishu(飞书), WeCom(企业微信)
https://bytebase.com/docs/get-started/install/overview
In particular, get familiar with various product concept such as data model, roles and permissions and etc.
How to run all or a subset of tests
https://github.com/bytebase/bytebase/blob/main/docs/testing.md
https://github.com/bytebase/bytebase/tree/main/docs/design
https://github.com/bytebase/bytebase/tree/main/docs/version-management.md
-
Checkout issues tagged with good first issue.
-
We are maintaining an online database glossary list, you can add/improve content there.
-
Before creating a Pull Request, please follow the Development Guide for branch and commit message conventions.
Note: We are quite disciplined on tech stack. If you consider bringing a new programming language, framework and any non-trivial external dependency, please open a discussion first.
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.
-
Tech Stack
-
Data Model
- Go (1.19 or later)
- pnpm
- Air (our forked repo @87187cc with the proper signal handling). This is for backend live reload.
go install github.com/bytebase/air@87187cc
-
Pull source.
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.
-
(Optional) Install pre-commit.
cd bytebase pre-commit install pre-commit install --hook-type commit-msg
Check out our jobs page for openings.