通过 Bytebase API 做数据库 Schema 变更

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_prodhr_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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/271390.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

搭建Nginx文件下载站点

一、下载Nginx 首先,确保你的服务器上已经安装了Nginx,使用编译安装,下载最新版Nginx。 wget https://nginx.org/download/nginx-1.25.3.tar.gz tar -xf nginx-1.25.3.tar.gz二、安装Fancyindex和Nginx-Fancyindex-Theme模块 # 下载Fancyin…

外贸中的很多跟想的不一样的事情

说说最近遇到的几个客户情况,以及对一些事情刷新的认知。 第一个客户姑且称为A吧,这个客户在询价的时候,产品的名称以及数量以还有走货的方式写的很清楚,客户A要的产品不是很多, 顶多算是个样品单。 一般情况下&…

腾讯云2核4G服务器CVM标准型S5实例5年优惠价格表

腾讯云服务器续费贵所以一次性买3年或5年,腾讯云轻量应用服务器3年价格有优惠,CVM云服务器5年有特价,腾讯云3年轻量和5年云服务器CVM优惠活动入口,3年轻量应用服务器配置可选2核2G4M和2核4G5M带宽,5年CVM云服务器可以选…

学习笔记11——Spring的XML配置

学习笔记系列开头惯例发布一些寻亲消息 链接:https://www.baobeihuijia.com/bbhj/contents/3/192584.html SSM框架——IOC基础【BeanSetter注入加载xml】 框架总览 Spring Framework 谈谈我对Spring的理解 - 知乎 (zhihu.com)java - 【架构视角】一篇文章带你彻底…

2023年12月25日学习总结——MLP

💡我准备每一天都写一个学习总结,周末再把每日的学习总结汇总成专门的文章 🔆我的学习总结主要是为了自己的个人学习,没有商业用途,侵删 okkk开始今日学习 目录 1、今日计划学习内容2、今日学习内容深入学习MLP&#…

AI赋能金融创新:ChatGPT引领量化交易新时代

文章目录 一、引言二、ChatGPT与量化交易的融合三、实践应用:ChatGPT在量化交易中的成功案例四、挑战与前景五、结论《AI时代Python量化交易实战:ChatGPT让量化交易插上翅膀》📚→ [当当](http://product.dangdang.com/29658180.html) | [京东…

Android/iOS APP备案流程指南

Android/iOS APP备案流程指南 摘要 本文通过详细介绍了工信部对移动互联网应用程序(APP)备案的要求,解释了APP备案的定义、时间节点、办理流程以及腾讯云、阿里云的备案流程,最后提供了常见问题的解答。 引言 随着移动互联网的…

MyBatis见解4

10.MyBatis的动态SQL 10.5.trim标签 trim标签可以代替where标签、set标签 mapper //修改public void updateByUser2(User user);<update id"updateByUser2" parameterType"User">update user<!-- 增加SET前缀&#xff0c;忽略&#xff0c;后缀…

C# 初识System.IO.Pipelines

写在前面 在进一步了解Socket粘包分包的过程中&#xff0c;了解到了.NET 中的 System.IO.Pipelines&#xff0c;可以更优雅高效的解决这个问题&#xff1b;先跟随官方的示例做个初步的认识。 System.IO.Pipelines 是一个库&#xff0c;旨在使在 .NET 中执行高性能 I/O 更加容…

C/C++ 指针和const

const用于指针有一些很微妙的地方。可以用两种不同的方式将const关键字用于指针。 第一种方法时让指针指向一个常量对象&#xff0c;这样可以防止使用该指针来修改所指向的值&#xff1b; 第二中方法是将指针本身声明为常量&#xff0c;这样可以防止改变指针指向的位置。 首先…

[LitCTF 2023]Follow me and hack me

[LitCTF 2023]Follow me and hack me wp GET & POST 传参 这里用 HackBar &#xff0c;GET 传参 CTFLit2023 &#xff0c;POST 传参 Challengeim_c0m1ng &#xff0c;拿到 flag &#xff1a; 提示说备份文件还有好吃的&#xff0c;那么我们就来获取一下备份文件。 获取备…

解决国内大模型痛点的最佳实践方案

1.前言 自AI热潮掀起以来&#xff0c;国内互联网大厂躬身入局&#xff0c;各类机构奋起追赶&#xff0c;创业型企业纷至沓来。业内戏称&#xff0c;一场大模型的“百模大战”已经扩展到“千模大战”。 根据近期中国科学技术信息研究所发布的《中国人工智能大模型地图研究报告…

传输方式和传输速率

目录 传输方式 传输速率 传输方式 基带传输和频带传输 按照传输系统在传输数据信号过程中是否搬移其频谱&#xff0c;传输方式可分两类&#xff1a; 基带传输 指不搬移信号频谱的传输体制。频带传输 指利用调制解调器搬移信号频谱的传输体制。搬移频谱的目的是为…

数字调制学习总结

调制&#xff1a;将基带的信号的频谱搬移到指定的信道通带内的过程。 解调&#xff1a;把指定信号通带内的信号还原为基带的过程。 1、2ASK调制 原理如下图所示&#xff0c;基带信号为单极不归零码&#xff0c;与载波信号相乘&#xff0c;得到调制信号。 调制电路可以用开关…

输电线路定位:智能化技术助力线路维护

在现代社会&#xff0c;电力供应是人们生活和工业生产的重要保障。然而&#xff0c;随着电网规模的不断扩大&#xff0c;输电线路的维护和管理面临着越来越大的压力。如何快速、准确地定位输电线路故障&#xff0c;提高巡线效率&#xff0c;确保电网的安全稳定运行&#xff1f;…

1280×1024分辨率大画幅热红外三光AI无人机吊舱

LTIS505型1280热红外三光无人机吊舱是利卓公司结合了红外热成像、可见光相机与激光测距为一体的产品。 产品支持双波段成像&#xff0c;可以同时输出高清热红外与可见光视频&#xff0c;带有激光测距&#xff0c;可支持扩展AI目标识别跟踪功能。 热红外支持12801024大画幅热…

【MYSQL】MYSQL 的学习教程(七)之 慢 SQL 优化思路

1. 慢 SQL 优化思路 慢查询日志记录慢 SQLexplain 分析 SQL 的执行计划profile 分析执行耗时Optimizer Trace 分析详情确定问题并采用相应的措施 1. 慢查询日志记录慢 SQL 如何定位慢SQL呢&#xff1f; 我们可以通过 慢查询日志 来查看慢 SQL。 ①&#xff1a;开启慢查询日志…

微小奇迹的呵护:新生儿早产的温馨关怀

引言&#xff1a; 早产儿是生命的奇迹&#xff0c;但他们需要更多的呵护和关爱。对于家庭而言&#xff0c;正确的护理和关注对于早产儿的健康至关重要。本文将深入探讨早产儿的定义、早产的原因&#xff0c;以及家长在面对早产的时候应该采取的关键措施&#xff0c;为这些微小…

LeetCode刷题--- 优美的排列

个人主页&#xff1a;元清加油_【C】,【C语言】,【数据结构与算法】-CSDN博客元清加油_【C】,【C语言】,【数据结构与算法】-CSDN博客 个人专栏 力扣递归算法题 http://t.csdnimg.cn/yUl2I 【C】 http://t.csdnimg.cn/6AbpV 数据结构与算法 ​​​​​​http://t.cs…

十大VSCODE 插件推荐2023

1、海鲸AI 插件链接&#xff1a;ChatGPT GPT-4 - 海鲸AI - Visual Studio Marketplace 包含了ChatGPT(3.5/4.0)等多个AI模型。可以实现代码优化&#xff0c;代码解读&#xff0c;代码bug修复等功能&#xff0c;反应迅捷&#xff0c;体验出色&#xff0c;是一个多功能的AI插件…