通过 Bytebase API 做数据库 Schema 变更

数据库 CI/CD 工具 -- Bytebase 介绍 在本文中,我们首先向读者展示了 Bytebase 的安装部署过程,以及其查询和更改的基本功能。接着,我们体验了 Bytebase 1.14.0 最新版本所带来的 ChatSQL 功能,该功能基于 OpenAI,能够根据我们的问题或需求生成相应的 SQL 语句。最后,我们实践了 Bytebase 的 GitOps 功能,通过结合版本控制系统,可以跟踪数据库结构的变化,方便我们对数据库变更进行审查、协作和回滚操作。 阅读详情

Bytebase 是一款数据库 DevOps 和 CI/CD 工具,适用于开发人员、DBA 和平台工程团队。

它提供了一个直观的图形用户界面来管理数据库 Schema 变更。另一方面,一些团队可能希望将 Bytebase 集成到现有的内部 DevOps 研发平台中。这需要调用 Bytebase API。

file

在本教程中,你将首先在 Bytebase 控制台中进行 schema 变更。然后,运行一个外部示例程序,通过调用 Bytebase API,在控制台外部触发进行 schema 变更。如果公司已有内部平台,但又期待获得 Bytebase 的某些能力,这个示例将向你展示 Bytebase 提供了这个方式。

API 示例程序开源地址:https://github.com/bytebase/api-example

前提

  • 已安装 Docker
  • Node.js >= v18

启动 Bytebase 并准备账户

  1. 确保 Docker 正在运行。复制并粘贴命令以启动 Bytebase。
docker run --init \
  --name bytebase \
  --restart always \
  --publish 5678:8080 \
  --health-cmd "curl --fail http://localhost:5678/healthz || exit 1" \
  --health-interval 5m \
  --health-timeout 10s \
  --volume ~/.bytebase/data:/var/opt/bytebase \
  bytebase/bytebase:2.12.0 \
  --data /var/opt/bytebase \
  --port 8080
  1. Bytebase 通过 Docker 运行,你可以通过 localhost:5678 访问它。注册第一个管理员账户,该账户将被授予工作区管理员权限。

  2. 以管理员用户身份登录,点击右上角的齿轮图标,然后点击工作区 > 成员。

  3. 打开创建为服务账户,填写 api-example,选择本教程所需的 DBA 角色,然后点击添加.

file

  1. 在已激活部分找到新创建的服务账户,然后单击复制服务密钥。我们将使用此令牌验证 API 调用。

file

  1. 单击顶部栏上的选择项目,你会看到一个名为 Sample Project 的示例项目。点击它进入项目页面,这里有两个数据库:hr_prod 和 hr_test。

在 Bytebase 控制台中变更 Schema

让我们先回顾一下如何直接从控制台创建 schema 变更。

  1. 在 Bytebase 控制台中,到 Sample Project。单击 hr_prod 的复选框,然后单击变更 Schema。
  2. 切换 SQL 语句,粘贴以下 SQL 语句并单击预览工单。
CREATE TABLE test_from_console (id integer NOT NULL);
  1. 单击创建,自动检查完成后,将自动发布变更。工单状态将成为完成。

通过 Bytebase API 变更 schema

下面是演示以下 API 的示例应用程序:

  • 列出所有项目
  • 列出项目下的所有数据库
  • 在项目中创建 schema 变更工单
  • 获取创建的工单状态
  1. 到 API 示例程序的开源地址:https://github.com/bytebase/api-example 并复制地址。

  2. 将 env-template.local 复制到 .env.local。更新变量。

    • NEXT_PUBLIC_BB_URL: http://localhost:5678
    • NEXT_PUBLIC_BB_SERVICE_ACCOUNT: api-example
    • NEXT_PUBLIC_BB_SERVICE_KEY:在步骤 01 中复制的服务密钥
  3. 运行以下命令启动示例应用程序。

pnpm i && pnpm dev
  1. 在浏览器中打开应用程序,你将看到以下页面。

file

  1. 选择 Sample Project,然后选择 hr_prod,输入以下 SQL 并单击创建新工单。
CREATE TABLE test_from_api (  id integer NOT NULL );
  1. 工单将被创建,你将看到以下页面。

file

  1. 单击链接 在 Bytebase[OPEN] 中查看工单 xxx,在 Bytebase 控制台中查看工单。你会发现工单自动发布,并变成完成状态。

file

  1. 返回示例程序,点击刷新状态。你会看到状态已从 [OPEN] 变为 [DONE]。

file

  1. 有关示例应用程序的其他信息,请参阅相应 GitHub 仓库中的 README https://github.com/bytebase/api-example#readme.

总结

恭喜!你已通过调用 Bytebase API 成功完成了 schema 变更。通过类似的方式,你可以将 Bytebase API 集成到现有的 DevOps 平台中,从而自动执行 schema 变更流程,并可以获得 Bytebase 的 SQL 审核、自定义审批流和 Schema 漂移检测等功能。


💡 更多资讯,请关注 Bytebase 公号:Bytebase

Bytebase 2.0 - 把 DevOps 带进数据库 近期 AI 领域的突破让大家都很兴奋,但回到日常的工作中,开发者们还是需要处理许多的琐事。其中之一就是和数据库打交道,一件繁琐但又需要格外仔细的工作,不然就容易造成 #删库跑路 的事故。2 年前,我们启动了 Bytebase 来解决这个问题,并且把项目开源在了 GitHub 上。相比于全球范围内的友商 Liquibase,Flyway,还是国内的 Yearning,Archery,Bytebase 的增长速度也都是更快的。 阅读详情

相关推荐

数据库管理审计工具Bytebase快速部署

Bytebase 是一个开源数据库 DevOps 工具,它是用于在整个应用程序开发生命周期中管理数据库的 GitLab/GitHub。由于 GitLab/GitHub 为团队提供了 GUI 和协作工作区来管理代码,因此 Bytebase 在管理数据库方面也做了类似的工作.

weixin_44151123的博客 1364

如何使用 Bytebase 快速实现 SQL 自动化

公众号关注「奇妙的 Linux 世界」设为「星标」,每天带你玩转 Linux !​数据库在每个企业都占据的非常重要的位置,它存储着一个公司的命脉。对于数据库的管理也非常的复杂多变,很多公司都有专业的DBA团队在管理。但是,不论有无DBA,对数据库的操作都不会变少,而且都面临着相同的问题:不是在提数就是在修数的路上不是在审核SQL就是在审核SQL的路上不是在找历史记录就是在找历史记录的路上不是在备...

easylife206的专栏 2674

通过 GitHub Actions 执行数据库 Schema 变更工作流

我们创建了一个包含多个 SQL 文件的 PR,同时触发了 bytebase-sql-review.yml 和 bytebase-check-migration-status.yml。无论选择哪种工作流,在 GitHub Actions 和 Bytebase API 的帮助下,你都可以将变更脚本保存在库中,让它们通过相同的代码审查流程,并自动进行 Schema 变更部署。它会检查 Bytebase 中的变更状态,如果是「完成」,则返回「通过」,表示数据库变更已经完成。PR 将被阻止,直到变更完成。

Bytebase的博客 1030

Bytebase试用与对比

简介 官网介绍:Bytebase 是为 DBA 和开发人员进行数据库表结构 (schema) 变更而设计的团队协作工具。用户可以通过一个工作流 (pipeline),来推进 schema 在多个环境中的变化。同时用户也可以把 schema 保存在 VCS 中 ,再由新的 schema 文件提交来触发工作流。 由前Google和前蚂蚁员工创立的,刚刚首轮融资300万美元,此类软件之前使用过navicat,treesoft,Yearning,阿里内部的idb,阿里云的DMS,还有我在公司云原生数据库平台上自研

zhangjikuan的专栏 1万+

Ubuntu运行vmware时报错Vmware Unable to install all modules!Use shipped Linux kernel AIO access library解决。

Ubuntu运行vmware时报错Vmware Unable to install all modules! vmware --version 提示下面内容: [AppLoader] Use shipped Linux kernel AIO access library. An up-to-date "libaio" or "libaio1" package from your system is preferred. VMware Workstation 16.1.2 build-17966106

wto882dim的博客 2850

TLSR8258蓝牙Mesh实战:从SDK下载到自定义通信指令全流程(附避坑指南)

本文详细介绍了TLSR8258蓝牙Mesh开发的完整流程,从SDK下载、环境搭建到自定义通信指令的实现。通过实战案例和避坑指南,帮助开发者快速掌握低功耗蓝牙Mesh网络构建技巧,适用于智能家居、工业监控等物联网场景。

weixin_29176179的博客 202

3分钟快速上手Bytebase API:从零开始实现数据库自动化操作

🚀 想要实现数据库的自动化管理吗?Bytebase API 为你提供了一套完整的数据库 DevOps 解决方案!作为世界上最先进的数据库 DevOps 和 CI/CD 工具,Bytebase 可以帮助开发团队轻松实现数据库的版本控制、SQL 审核和自动化部署。 ## 什么是Bytebase? Bytebase 是一款专为开发者、DBA 和平台工程团队设计的数据库 DevOps 平台,被誉为"

gitblog_00810的博客 530

CAN信号定义避坑指南:Kvaser Database Editor里Byteorder和Bitpos设置的那些‘坑’

本文详细解析了在Kvaser Database Editor中配置CAN信号时,字节序(Byteorder)和起始位(Bitpos)设置的常见错误及解决方案。通过实际案例和验证技巧,帮助工程师避免DBC文件配置中的陷阱,确保车载电子系统的稳定通信。

weixin_28678831的博客 360

数据库 变更和版本控制管理工具 --Bytebase 安装部署(windows 安装篇)

Bytebase 是一个现代化的数据库 schema 变更和版本控制管理工具。主要功能数据库变更管理:可以方便地进行数据库结构的变更,如添加表、修改列、创建索引等操作。通过清晰的变更流程,确保数据库的变更能够安全、有序地进行。提供可视化的界面,让开发人员和数据库管理员可以直观地看到变更的内容和影响。版本控制:对数据库 schema 进行版本管理,类似于代码的版本控制系统。可以记录每次变更的历史,方便回滚到特定的版本。支持团队协作,多个成员可以共同管理数据库的变更,确保变更的一致性和可追溯性。

小 tom的博客 3388

Unreal Engine鸿蒙移植实战:环境配置、构建流程与性能优化指南

游戏引擎移植是跨平台开发中的关键技术环节,其核心原理在于通过适配目标操作系统的底层接口和工具链,实现同一套代码在不同硬件和软件环境下的高效运行。这项技术的价值在于最大化代码复用率,降低多平台维护成本,并能让应用快速触达新兴生态系统的用户。在移动游戏和XR应用领域,随着鸿蒙HarmonyOS生态的快速发展,将成熟的商业引擎如Unreal Engine迁移至此平台,成为开发者探索新市场机会的重要路径。本文聚焦于Unreal Engine项目向鸿蒙系统的移植实践,详细解析了从环境搭建、源码适配到构建打包的全链路流

weixin_29011395的博客 411

小米手机免登录开启USB安装与调试(MIUI 9-11实测,已Root可用)

本文详细介绍了小米手机免登录开启USB安装与调试的底层方案,适用于已Root的MIUI 9-11版本设备。通过修改系统配置、禁用MIUI安装器验证和强制开启USB调试等步骤,帮助开发者绕过账号限制,实现快速调试。文章包含不同MIUI版本的兼容性处理和常见问题解决方法,实测有效。

weixin_33675507的博客 290

终极指南:如何用Bytebase实现数据库DevOps自动化与安全管理

你是否经常为数据库变更而头疼?开发团队频繁修改schema导致生产事故,DBA手动审核SQL耗时费力,敏感数据暴露风险居高不下?Bytebase作为CNCF认证的数据库DevOps工具,为你提供了一站式解决方案。这款开源数据库DevOps工具能够帮助团队实现数据库变更的自动化管理,让数据库开发像代码开发一样高效可靠。 [![Bytebase数据库DevOps工具架构图](https://raw.

gitblog_00363的博客 900

Matlab实现雷达波位编排

1 简介 %本程序用于雷达球坐标系到正弦空间坐标系的转换,以及相控阵雷达的波位编排。 2 完整代码 ​%070228添加波位数据保存clear allclose allclc%波束宽度,单位:度BeamWidth = 3.6;theta05 = round(sin(BeamWidth*pi/180)*1000)/1000;%雷达作用空域AZ = [-15 15]; %方位角范围(雷达球坐标系),单位:度EL = [0 30]; %俯仰角范围(雷

qq_59747472的博客 2480

【架构】-- bytebase 项目分析

摘要: Bytebase是一款开源的数据库DevSecOps平台,整合了数据库CI/CD、安全合规与团队协作功能,支持PostgreSQL、MySQL等主流数据库。其核心优势包括GitOps集成、自动化迁移、SQL审查、数据脱敏及RBAC权限管理,适用于开发团队、DBA和安全团队。通过统一管理界面和API支持,Bytebase解决了传统工具分散、低效的问题,被CNCF收录为云原生关键项目。部署灵活(Docker/Kubernetes),社区活跃(GitHub 13k+ Stars),是企业实现数据库现代化管

欢迎来到我的博客,一起探索代码里的世界! 1464

环境仿真软件:EcoPath with Ecosim_(4).Ecosim模型动态模拟

Ecosim 是 EcoPath with Ecosim (EwE) 软件中的动态模拟模块,用于模拟生态系统中各个组分的动态变化过程。Ecosim 模型通过时间序列数据和动态参数,可以预测生态系统在不同管理措施下的响应。时间序列数据的输入:用户可以输入历史数据,如捕捞努力、生物量、环境因子等,用于校准模型。动态参数的设置:用户可以设置被捕食率、生长率、捕捞死亡率等动态参数,以反映生态系统的变化。模拟结果的分析。

kkchenjj的博客 895

YOLOv11改进策略【Head/分割头】| 结合CVPR-2024 中的DynamicConv 动态卷积 改进分割头, 优化模型(独家改进)

在大规模视觉预训练中,通常模型的性能受到数据、参数和FLOP三个关键因素的影响。一般来说,模型的参数数量越多,FLOP也越高,但在移动设备等对计算资源有限制的场景下,需要低FLOP的模型同时又希望模型能从大规模预训练中受益。传统的方法很难在增加参数的同时保持低FLOP,因此需要一种新的设计来解决这个问题,模块应运而生。

Limiiiing的博客 2313

从手动运维到自动化协作:Bytebase数据库DevOps完整指南

你是否还在为数据库变更管理而烦恼?开发团队频繁修改schema导致生产事故,DBA手动审核SQL耗时费力,敏感数据暴露风险居高不下?作为CNCF认证的唯一数据库CI/CD项目,Bytebase为你提供了一个完整的数据库DevOps解决方案。本文将带你深入了解如何通过Bytebase实现数据库管理的现代化转型,告别传统手工操作,拥抱自动化协作新时代。 ## 数据库管理的痛点与挑战 在传统的数据库

gitblog_00691的博客 731

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

GUI / GitOps / API: 用 Bytebase 实现 SQL 审核

现在,你已学会如何在 Bytebase GUI、GitHub 或通过 API 触发 SQL 审核。更多详情请参阅 Bytebase.com 官网上的 SQL 审核(SQL Review)文档(现在,你已学会如何在Bytebase GUI、GitHub 或通过 API 触发 SQL 审核。更多详情请参阅 Bytebase.com 官网上的 SQL 审核(SQL Review)文档(💡 更多资讯,请关注 Bytebase 公号:Bytebase。

Bytebase的博客 950

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Bytebase API设计:RESTful接口规范指南

Bytebase作为业界领先的数据库DevOps平台,其API设计遵循严格的RESTful规范,为开发者提供了一套完整、一致且易于使用的接口体系。本文将深入解析Bytebase API的设计理念、核心规范和最佳实践,帮助开发者更好地理解和利用这套强大的API系统。 ## API架构设计原则 ### 1. 资源导向设计 Bytebase API采用经典的RESTful资源模型,所有操作都围绕核...

gitblog_00734的博客 924

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Bytebase批量操作:高效管理多数据库技巧

Bytebase批量操作:高效管理多数据库技巧 【免费下载链接】bytebase World's most advanced database DevOps and CI/CD for Developer, DBA and Platform Engineering teams. The GitLab for databa...

gitblog_00846的博客 1147

数据库DevOps实战:Bytebase dbhub实现数据库变更的GitOps流程

在软件工程领域,数据库变更管理一直是DevOps实践中的关键环节。其核心原理是通过引入版本控制和自动化流程,将数据库Schema的变更像应用程序代码一样进行管理。这一技术价值在于解决了传统数据库变更中的环境不一致、权限混乱、回滚困难和缺乏审计等痛点,实现了变更的可追溯、可评审、可自动化和可回滚。在应用场景上,它特别适用于微服务架构和敏捷开发团队,能够将数据库变更无缝集成到现有的CI/CD流水线中。通过引入类似Bytebase dbhub这样的数据库DevOps平台,团队可以实践GitOps for Data

weixin_27210125的博客 329

Folia 播放器 10 分钟上手指南:放出第一首歌,并打开全屏歌词动画

Folia 是一款支持网易云、QQ 音乐、酷狗、本地音乐库和 Navidrome 的音乐播放器,核心卖点是把歌词做成全屏沉浸式动画。这份指南面向刚装完软件、还没摸熟的新手,带你按"找歌、控播、调外观"的动线走通最常用的路径。读完你能独立放出第一首歌、整理播放队列,并打开全屏歌词模式。 ## 第一步先做这个:从首页卡片放出第一首歌 打开 Folia,首页不是歌曲列表,而是一张悬浮的 3D 卡片网

gitblog_00999的博客 506

代码全开源!数据库工具届的瑞士军刀,替代多款工具的一站式数据库开发平台

Bytebase 目前支持了市面上所有主流的数据库。它收口了人对数据库的所有操作。通过一站式的解决方案,整合了各种零散的数据库工具,使得组织能通过统一的入口来变更、查询、保护和治理无论是云上还是云下的各种数据库。💡 更多资讯,请关注 Bytebase 公号:Bytebase。

Bytebase的博客 1749

Bytebase 2.13.1 - 支持 Apache Doris

💡 更多资讯,请关注 Bytebase 公号:Bytebase。如果从之前版本升级,获取新版本后,重新启动升级即可。

Bytebase的博客 564

数据库回滚:大祸临头时

数据库技术中,回滚是通过撤销对数据库所做的一项或多项更改,将数据库返回到先前状态的操作。它是维护数据完整性和从错误中恢复的重要机制。数据库回滚对于维护数据完整、错误恢复至关重要。周密的回滚策略与适当的自动化和测试相结合,可确保企业从数据库问题中快速恢复,最大程度上降低对业务运营的影响。💡 更多资讯,请关注 Bytebase 公号:Bytebase。

Bytebase的博客 1434

Bytebase通知系统:邮件/Slack集成指南

Bytebase作为业界领先的数据库DevOps平台,提供了强大的通知系统,支持邮件和Slack等多种通知渠道。本文将深入解析Bytebase通知系统的架构、配置方法和最佳实践,帮助团队实现高效的数据库变更通知管理。 ## 通知系统架构 Bytebase的通知系统采用模块化设计,核心组件包括: ### 事件驱动架构 ```mermaid flowchart TD A[数据库事件] ...

gitblog_01081的博客 607
上一篇: 如何设计优秀的 URL?
下一篇: 一个公司到底需要几个 DBA
Bytebase
博客等级 码龄5年 1349粉丝 258原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值