⚙️ 安装 • 📚 文档 • 💬 Discord • 🙋♀️ 预约演示
不同的数据库开发任务
多种数据库系统
统一的流程
单一的工具
🪜
变更
想要规范化数据库变更流程但不知道如何着手?
标准操作流程 (SOP) 跨不同数据库系统、小型或大型表以及不同租户标准化数据库模式和数据变更流程。 SQL 审查 100多条lint规则用于检测SQL反模式并在组织内实施一致的SQL风格。 GitOps 一键式GitHub和GitLab集成以启用数据库变更的GitOps工作流。 |
🔮
查询
想要控制数据访问但不知道如何实现?
🔒
安全
想要避免数据泄露、变更中断并检测恶意行为但不知道如何操作?
集中变更、查询和管理任务 在不同数据库上执行不同任务的单一平台,从而相应地实施策略和监控活动。 RBAC 两级RBAC模型分别映射到组织范围的权限和应用团队权限。 异常中心和审计日志 捕获所有数据库异常、用户操作和系统事件,并以全面的视图呈现它们。 |
👩💼
治理
想要执行组织策略但不知道如何实施?
管理数据库资源 用于管理应用开发的环境、数据库实例、数据库用户的单一平台,可选Terraform集成。 策略执行 执行组织范围的SQL审查策略、备份策略和数据访问策略。 SQL编辑器管理模式 无需设置堡垒机的类CLI体验。 |
🖖 简介
Bytebase 是一个面向开发人员和数据库管理员的数据库 CI/CD 解决方案。它是 CNCF Landscape 和 Platform Engineering 收录的唯一数据库 CI/CD 项目。Bytebase 家族包含以下工具:
- Bytebase 控制台:一个基于 Web 的图形界面,供开发人员和数据库管理员管理数据库开发生命周期。
- Bytebase API:提供 gRPC 和 RESTful API,用于操作 Bytebase 的各个方面。
- Bytebase 命令行界面 (bb):帮助开发人员将数据库变更集成到现有 CI/CD 工作流程中的命令行工具。
- Bytebase GitHub 应用 和 SQL 审查 GitHub Action:在拉取请求期间检测 SQL 反模式并强制执行一致的 SQL 风格指南的 GitHub 应用和 GitHub Action。
- Terraform Bytebase 提供程序:该 Terraform 提供程序使团队能够通过 Terraform 管理 Bytebase 资源。典型的设置涉及团队使用 Terraform 从云供应商配置数据库实例,然后使用 Bytebase 提供程序准备这些实例以供应用程序使用。
🔧 安装
- 从最新版本一键安装脚本
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/bytebase/install/main/install.sh)"
- Docker
- Kubernetes
- 从源代码构建
🎮 演示
在线演示:https://demo.bytebase.com
您还可以预约 30 分钟的产品演示,与我们的产品专家进行交流。
👩🏫 教程
产品教程可在 https://www.bytebase.com/tutorial 获取。
集成
💎 设计原则
🪶 | 无依赖 | 使用单个命令 ./bytebase 启动,无需任何外部依赖。外部 PostgreSQL 数据存储和其他组件都是可选的。 |
🔗 | 集成优先 | 专注于数据库管理,将其他功能留给其他工具。我们与 GitHub/GitLab、Terraform 提供程序、webhook 等有原生集成。 |
💂♀️ | 工程纪律 | 严格遵守两周一次的发布周期和工程实践。 |
🧩 数据模型
更多详情请参阅数据模型文档。
🎭 角色
更多详情请参阅角色和权限文档。
Bytebase 采用基于角色的访问控制(RBAC),并在工作区和项目级别提供两组角色:
- 工作区角色:
管理员
、DBA
、成员
。工作区角色对应组织中的角色。 - 项目角色:
所有者
、开发者
、发布者
、查询者
、导出者
、查看者
。项目级别的角色对应特定团队或项目中的角色。
每个用户都被分配一个工作区角色,如果某个用户参与特定项目,则还会相应地分配一个项目角色。
下图描述了工程组织与 Bytebase 工作区中相应角色之间的典型映射关系:
🕊 开发和贡献
-
Bytebase 采用精心挑选的技术栈构建。它针对开发者体验进行了优化,非常容易开始代码工作:
- 没有外部依赖。
- 无需配置。
- 一个命令启动后端,一个命令启动前端,两者都支持实时重载。
-
交互式代码演练
-
遵循功能的生命周期。
开发环境设置
前提条件
- Go(1.22.5 或更高版本)
- pnpm
- Air(我们的分叉仓库 @87187cc,具有适当的信号处理)。这用于后端实时重载。
go install github.com/bytebase/air@87187cc
步骤
-
拉取源代码。
git clone https://github.com/bytebase/bytebase
-
在本地主机上创建外部 Postgres 数据库。
CREATE USER bbdev SUPERUSER; CREATE DATABASE bbdev;
-
使用 air 启动后端(支持实时重载)。
PG_URL=postgresql://bbdev@localhost/bbdev $(go env GOPATH)/bin/air -c scripts/.air.toml
如果遇到"错误:打开的文件过多",请更改打开文件的限制。
ulimit -n 10240
如果你需要额外的运行时参数,比如 --backup-bucket,请按以下方式添加:
air -c scripts/.air.toml -- --backup-region us-east-1 --backup-bucket s3:\\/\\/example-bucket --backup-credential ~/.aws/credentials
-
启动前端(带有热重载)。
cd frontend && pnpm i && pnpm dev
Bytebase 现在应该在 http://localhost:3000 运行,更改前端或后端代码都会触发热重载。
提示
- 使用代码检查器从 UI 中定位前端代码。在 Mac 上按住
Option + Shift
,在 Windows 上按住Alt + Shift
🤺 Bytebase 与替代方案对比
Bytebase vs Flyway, Liquibase
Flyway 或 Liquibase 是专注于架构变更的库和命令行工具。而 Bytebase 是一个覆盖整个数据库开发生命周期的一站式解决方案,供开发人员和 DBA 协作使用。
另一个关键区别是 Bytebase 不支持 Oracle 和 SQL Server。这是我们有意识做出的决定,以便我们能专注于支持其他缺乏良好工具支持的数据库。特别是,我们的许多用户告诉我们,Bytebase 是迄今为止最好的(有时是唯一的)能够支持他们 PostgreSQL 和 ClickHouse 用例的数据库工具。
Bytebase vs Yearning, Archery
Yearning 或 Archery 提供 DBA 操作门户。而 Bytebase 为 DBA 和开发人员提供协作工作区,并将 DevOps 实践引入数据库变更管理(DCM)。Bytebase 有类似于 GitLab/GitHub 中的项目
概念,并提供与 GitLab/GitHub 的原生 GitOps 集成。
另一个关键区别是 Yearning、Archery 是由个人兼职维护的开源项目。而 Bytebase 虽然是开源的,但它采用开放核心模式,是一个商业化产品,由全职团队支持,每两周发布新版本。
Bytebase vs Metabase
Metabase 是一个数据可视化和商业智能(BI)工具。它是为数据团队和业务分析师构建的,用于理解数据。
Bytebase 是一个数据库开发平台。它是为开发团队在应用程序开发生命周期中执行数据库操作而构建的。
Bytebase vs CloudBeaver
两者都有基于 Web 的 SQL 客户端。此外,Bytebase 提供审核工作流程,更多协作和安全功能。
Bytebase vs DBeaver / Navicat
SQL GUI 客户端如 MySQL Workbench、pgAdmin、DBeaver、Navicat 提供与数据库交互的图形界面。Bytebase 不仅提供图形客户端,还可以为数据安全和治理实施集中的数据访问控制。
Bytebase vs Jira
Jira 是一个通用的问题票务系统。Bytebase 是一个特定于数据库领域的变更管理系统。Bytebase 提供了一个集成的体验来计划、审查和部署数据库变更。
👨👩👧👦 社区
🤔 常见问题 (FAQs)
查看我们的常见问题。