mirror of
https://github.com/okxlin/appstore.git
synced 2025-07-14 13:22:18 +08:00
367 lines
22 KiB
Markdown
367 lines
22 KiB
Markdown
<h1 align="center">
|
|
<a
|
|
target="_blank"
|
|
href="https://bytebase.com?source=github"
|
|
>
|
|
<img
|
|
align="center"
|
|
alt="Bytebase"
|
|
src="https://raw.githubusercontent.com/bytebase/bytebase/main/docs/assets/banner.webp"
|
|
style="width:100%;"
|
|
/>
|
|
</a>
|
|
</h1>
|
|
|
|
<p align="center">
|
|
<a href="https://demo.bytebase.com?source=github" target="_blank"><b>🔥 Live Demo</b></a> •
|
|
<a href="https://bytebase.com/docs/get-started/install/overview" target="_blank"><b>⚙️ Install</b></a> •
|
|
<a href="https://bytebase.com/docs"><b>📚 Docs</b></a> •
|
|
<a href="https://discord.gg/huyw7gRsyA"><b>💬 Discord</b></a> •
|
|
<a href="https://www.bytebase.com/request-demo/"><b>🙋♀️ Book Demo</b></a>
|
|
</p>
|
|
|
|
<p align="center">
|
|
<a href="https://goreportcard.com/report/github.com/bytebase/bytebase">
|
|
<img alt="go report" src="https://goreportcard.com/badge/github.com/bytebase/bytebase" />
|
|
</a>
|
|
<a href="https://artifacthub.io/packages/search?repo=bytebase">
|
|
<img alt="Artifact Hub" src="https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/bytebase" />
|
|
</a>
|
|
<a
|
|
href="https://github.com/bytebase/bytebase"
|
|
target="_blank"
|
|
>
|
|
<img alt="Github Stars" src="https://img.shields.io/github/stars/bytebase/bytebase?logo=github">
|
|
</a>
|
|
</p>
|
|
|
|
<p align="center">
|
|
<b> Different </b> database development tasks
|
|
</p>
|
|
|
|
<p align="center">
|
|
<b> Multiple </b> database systems
|
|
</p>
|
|
|
|
<p align="center">
|
|
<b> Unified </b> process
|
|
</p>
|
|
|
|
<p align="center">
|
|
<b> Single </b> tool
|
|
</p>
|
|
|
|
<br />
|
|
|
|
<p align="center" >
|
|
<img src="https://raw.githubusercontent.com/bytebase/bytebase/main/docs/assets/old-to-new-world.webp" />
|
|
</p>
|
|
|
|
<br />
|
|
|
|
<p align="center">
|
|
<img src="https://raw.githubusercontent.com/bytebase/bytebase/main/docs/assets/fish.webp" />
|
|
</p>
|
|
|
|
<br />
|
|
|
|
<p align="center" >
|
|
<img src="https://raw.githubusercontent.com/bytebase/bytebase/main/docs/assets/change-query-secure-govern.webp" />
|
|
</p>
|
|
|
|
<br />
|
|
|
|
<p align="center">🪜</p>
|
|
<h1 align="center">Change</h1>
|
|
<p align="center">
|
|
Want to formalize the database change process but don't know how?
|
|
</p>
|
|
|
|
| | |
|
|
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
|
|
| <b>Standard Operating Procedure (SOP) </b><br />Standardize the database schema and data change process across different database systems, small or [large tables](https://www.bytebase.com/docs/change-database/online-schema-migration-for-mysql) and [different tenants](https://www.bytebase.com/docs/change-database/batch-change/#change-databases-from-multiple-tenants).<br /><br/><b>SQL Review</b><br />[100+ lint rules](https://www.bytebase.com/docs/sql-review/review-rules) to detect SQL anti-patterns and enforce consistent SQL style in the organization.<br /><br /><b>GitOps</b><br />[Point-and-click GitHub and GitLab integration](https://www.bytebase.com/docs/vcs-integration/overview) to enable GitOps workflow for changing database. | <img src="https://raw.githubusercontent.com/bytebase/bytebase/main/docs/assets/issue-detail.webp" /> |
|
|
|
|
<br />
|
|
|
|
<p align="center">🔮</p>
|
|
<h1 align="center">Query</h1>
|
|
<p align="center">
|
|
Want to control the data access but don't know how?
|
|
</p>
|
|
|
|
| | |
|
|
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
|
|
| <b>All-in-one SQL Editor</b><br />Web-based IDE specifically for performing SQL specific tasks.<br /><br/><b>Data Masking</b><br />State-of-the-art [column level masking](https://www.bytebase.com/docs/sql-editor/mask-data) engine to cover complex situations like subquery, CTE.<br /><br /><b>Data Access Control</b><br />Organization level policy to centralize the [data access control](https://www.bytebase.com/docs/security/data-access-control). | <img src="https://raw.githubusercontent.com/bytebase/bytebase/main/docs/assets/sql-editor.webp" /> |
|
|
|
|
<br />
|
|
|
|
<p align="center">🔒</p>
|
|
<h1 align="center">Secure</h1>
|
|
<p align="center">
|
|
Want to avoid data leakage, change outage and detect malicious behavior but don't know how?
|
|
</p>
|
|
|
|
| | |
|
|
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ |
|
|
| <b>Centralize Change, Query and Admin Tasks</b><br />A single place to perform different tasks on different databases, thus enforce policy and monitor activity accordingly. <br /><br /><b>RBAC</b><br />[Two-level RBAC model](https://www.bytebase.com/docs/concepts/roles-and-permissions) mapping to the organization wide privileges and application team privileges respectively.<br /><br /><b>Anomaly Center and Audit Logging</b><br /> Capture all database [anomalies](https://www.bytebase.com/docs/administration/anomaly-center), user actions and system events and present them in a holistic view. | <img src="https://raw.githubusercontent.com/bytebase/bytebase/main/docs/assets/anomaly-center.webp" /> |
|
|
|
|
<br />
|
|
|
|
<p align="center">👩💼</p>
|
|
<h1 align="center">Govern</h1>
|
|
<p align="center">
|
|
Want to enforce organization policy but don't know how?
|
|
</p>
|
|
|
|
| | |
|
|
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
|
|
| <b>Manage Database Resources</b><br /> A single place to manage environments, database instances, database users for application development, with optional [Terraform integration](https://registry.terraform.io/providers/bytebase/bytebase/latest/docs). <br /><br /><b>Policy Enforcement</b><br />Enforce organization wide SQL Review policy, backup policy and data access policy.<br /><br/><b>SQL Editor Admin mode</b><br />[CLI like experience](https://www.bytebase.com/docs/sql-editor/admin-mode) without setting up bastion. | <img src="https://raw.githubusercontent.com/bytebase/bytebase/main/docs/assets/sql-review-policy.webp" /> |
|
|
|
|
<br />
|
|
|
|
# 🖖 Intro
|
|
|
|
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](https://landscape.cncf.io/?selected=bytebase). The Bytebase family consists of these tools:
|
|
|
|
- [Bytebase Console](https://bytebase.com/?source=github): A web-based GUI for developers and DBAs to manage the database development lifecycle.
|
|
- [Bytebase CLI (bb)](https://www.bytebase.com/docs/cli/overview): The CLI to help developers integrate database changes into the existing CI/CD workflow.
|
|
- [Bytebase GitHub App](https://github.com/marketplace/bytebase) and [SQL Review GitHub Action](https://github.com/marketplace/actions/sql-review): The GitHub App and GitHub Action to detect SQL anti-patterns and enforce a consistent SQL style guide during Pull Request.
|
|
- [Terraform Bytebase Provider](https://registry.terraform.io/providers/bytebase/bytebase/latest/docs): 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.
|
|
|
|
| | Topic |
|
|
| --- | :------------------------------------------------------------------ |
|
|
| 🏗️ | <b>[Installation](#-installation)</b> |
|
|
| 🎮 | <b>[Demo](#-demo)</b> |
|
|
| 👩🏫 | <b>[Tutorials](#-tutorials)</b> |
|
|
| 💎 | <b>[Design Principles](#-design-principles)</b> |
|
|
| 🧩 | <b>[Data Model](#-data-model)</b> |
|
|
| 🎭 | <b>[Roles](#-roles)</b> |
|
|
| 🕊 | <b>[Developing and Contributing](#-developing-and-contributing)</b> |
|
|
| 🤺 | <b>[Bytebase vs Alternatives](#-bytebase-vs-alternatives)</b> |
|
|
|
|
<br />
|
|
|
|
# 🏗️ Installation
|
|
|
|
### One liner
|
|
|
|
```bash
|
|
# One-liner installation script from latest release
|
|
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/bytebase/install/main/install.sh)"
|
|
|
|
```
|
|
|
|
- [Build from source](https://www.bytebase.com/docs/get-started/install/build-from-source-code)
|
|
- [Docker](https://www.bytebase.com/docs/get-started/install/deploy-with-docker)
|
|
- [Kubernetes](https://www.bytebase.com/docs/get-started/install/deploy-to-kubernetes)
|
|
- [render.com](https://www.bytebase.com/docs/get-started/install/deploy-to-render)
|
|
- [Rainbond](https://www.bytebase.com/docs/get-started/install/deploy-to-rainbond)
|
|
|
|
<br />
|
|
|
|
# 🎮 Demo
|
|
|
|
Live demo at https://demo.bytebase.com
|
|
|
|
You can also [book a 30min product walkthrough](https://cal.com/adela-bytebase/30min) with one of
|
|
our product experts.
|
|
|
|
<br />
|
|
|
|
# 👩🏫 Tutorials
|
|
|
|
Product tutorials are available at https://www.bytebase.com/tutorial.
|
|
|
|
## Integrations
|
|
|
|
- [Manage Supabase PostgreSQL](https://www.bytebase.com/docs/how-to/integrations/supabase)
|
|
- [Manage render PostgreSQL](https://www.bytebase.com/docs/how-to/integrations/render)
|
|
- [Manage Neon database](https://www.bytebase.com/docs/how-to/integrations/neon)
|
|
- [Deploy to sealos](https://www.bytebase.com/docs/get-started/install/deploy-to-sealos)
|
|
- [Deploy to Rainbond](https://www.bytebase.com/docs/get-started/install/deploy-to-rainbond)
|
|
|
|
<br />
|
|
|
|
# 💎 Design Principles
|
|
|
|
| | | |
|
|
| --- | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
| 🪶 | Dependency Free | Start with a single command `./bytebase` without any external dependency. External PostgreSQL data store and others are optional. |
|
|
| 🔗 | Integration First | Solely focus on database management and leave the rest to others. We have native VCS integration with [GitHub/GitLab](https://www.bytebase.com/docs/vcs-integration/overview), [Terraform Provider](https://registry.terraform.io/providers/bytebase/bytebase/latest/docs), [webhook](https://www.bytebase.com/docs/change-database/webhook), and etc. |
|
|
| 💂♀️ | Engineering Disciplined | Disciplined [bi-weekly release](https://www.bytebase.com/changelog) and [engineering practice](https://github.com/bytebase/bytebase/blob/main/docs/life-of-a-feature.md). |
|
|
|
|
<br />
|
|
|
|
# 🧩 Data Model
|
|
|
|
More details in [Data Model Doc](https://www.bytebase.com/docs/concepts/data-model).
|
|
|
|
<p align="center">
|
|
<img
|
|
align="center"
|
|
alt="Data Model"
|
|
src="https://raw.githubusercontent.com/bytebase/bytebase/main/docs/assets/data-model-v2.webp"
|
|
style="width:100%;"
|
|
/>
|
|
</p>
|
|
|
|
<br />
|
|
|
|
# 🎭 Roles
|
|
|
|
More details in [Roles and Permissions Doc](https://www.bytebase.com/docs/concepts/roles-and-permissions).
|
|
|
|
Bytebase employs RBAC (Role-Based-Access-Control) and provides two role sets at the workspace and project level:
|
|
|
|
- Workspace roles: `Owner`, `DBA`, `Developer`. The workspace role maps to the role in an engineering organization.
|
|
- Project roles: `Owner`, `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
|
|
|
|
<p align="center">
|
|
<img
|
|
align="center"
|
|
alt="Role Mapping"
|
|
src="https://raw.githubusercontent.com/bytebase/bytebase/main/docs/assets/org-role-mapping.webp"
|
|
style="width:100%;"
|
|
/>
|
|
</p>
|
|
|
|
<br />
|
|
|
|
# 🕊 Developing and Contributing
|
|
|
|
<p align="center">
|
|
<img
|
|
align="center"
|
|
alt="Tech Stack"
|
|
src="https://raw.githubusercontent.com/bytebase/bytebase/main/docs/assets/techstack.webp"
|
|
style="width:100%;"
|
|
/>
|
|
</p>
|
|
|
|
- Bytebase is built with a curated tech stack. It is optimized for **developer experience** and is very easy to start
|
|
working on the code:
|
|
|
|
1. It has no external dependency.
|
|
1. It requires zero config.
|
|
1. 1 command to start backend and 1 command to start frontend, both with live reload support.
|
|
|
|
- Interactive code walkthrough
|
|
|
|
- [Life of a schema change](https://sourcegraph.com/github.com/bytebase/bytebase/-/blob/docs/design/life-of-a-schema-change.snb.md)
|
|
- [SQL Review](https://sourcegraph.com/github.com/bytebase/bytebase/-/blob/docs/design/sql-review-source-code-tour.snb.md)
|
|
|
|
- Follow [Life of a Feature](https://github.com/bytebase/bytebase/blob/main/docs/life-of-a-feature.md).
|
|
|
|
## Dev Environment Setup
|
|
|
|
### Prerequisites
|
|
|
|
- [Go](https://golang.org/doc/install) (1.21.3 or later)
|
|
- [pnpm](https://pnpm.io/installation)
|
|
- [Air](https://github.com/bytebase/air) (**our forked repo @87187cc with the proper signal handling**). This is for backend live reload.
|
|
```bash
|
|
go install github.com/bytebase/air@87187cc
|
|
```
|
|
|
|
### Steps
|
|
|
|
1. Pull source.
|
|
|
|
```bash
|
|
git clone https://github.com/bytebase/bytebase
|
|
```
|
|
|
|
1. Create an external Postgres database on localhost.
|
|
|
|
```sql
|
|
CREATE USER bbdev SUPERUSER;
|
|
CREATE DATABASE bbdev;
|
|
```
|
|
|
|
1. Start backend using air (with live reload).
|
|
|
|
```bash
|
|
PG_URL=postgresql://bbdev@localhost/bbdev air -c scripts/.air.toml
|
|
```
|
|
|
|
Change the open file limit if you encounter "error: too many open files".
|
|
|
|
```bash
|
|
ulimit -n 10240
|
|
```
|
|
|
|
If you need additional runtime parameters such as --backup-bucket, please add them like this:
|
|
|
|
```bash
|
|
air -c scripts/.air.toml -- --backup-region us-east-1 --backup-bucket s3:\\/\\/example-bucket --backup-credential ~/.aws/credentials
|
|
```
|
|
|
|
1. Start frontend (with live reload).
|
|
|
|
```bash
|
|
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.
|
|
|
|
### Tips
|
|
|
|
* Use [Code Inspector](https://en.inspector.fe-dev.cn/guide/start.html#method1-recommend) to locate
|
|
frontend code from UI. Hold `Option + Shift` on Mac or `Alt + Shift` on Windows
|
|
|
|
|
|
<br />
|
|
|
|
# Bytebase vs Flyway, Liquibase
|
|
|
|
- [Bytebase vs Liquibase](https://www.bytebase.com/blog/bytebase-vs-liquibase/)
|
|
- [Bytebase vs Flyway](https://www.bytebase.com/blog/bytebase-vs-flyway/)
|
|
|
|
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 tooling 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.
|
|
|
|
[](https://star-history.com/#bytebase/bytebase&liquibase/liquibase&flyway/flyway&Date)
|
|
|
|
# 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
|
|
with GitLab/GitHub.
|
|
|
|
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](https://www.bytebase.com/about#team) [releasing new version every 2 weeks](https://www.bytebase.com/changelog).
|
|
|
|
[](https://star-history.com/#bytebase/bytebase&cookieY/Yearning&hhyo/Archery&Date)
|
|
|
|
# 👨👩👧👦 Community
|
|
|
|
[](https://discord.gg/huyw7gRsyA)
|
|
|
|
[](https://twitter.com/Bytebase)
|
|
|
|
<br />
|
|
|
|
# 🤔 Frequently Asked Questions (FAQs)
|
|
|
|
Check out our [FAQ](https://www.bytebase.com/docs/faq).
|
|
|
|
<br />
|
|
|
|
# 🙋 Contact Us
|
|
|
|
- Interested in joining us? Check out our [jobs page](https://bytebase.com/jobs?source=github) for openings.
|
|
- Want to solve your schema change and database management headache? Book a [30min demo](https://cal.com/adela-bytebase/30min) with one of our product experts.
|