通过 Bytebase API 做数据库 Schema 变更
Bytebase 是一款数据库 DevOps 和 CI/CD 工具,适用于开发人员、DBA 和平台工程团队。
它提供了一个直观的图形用户界面来管理数据库 Schema 变更。另一方面,一些团队可能希望将 Bytebase 集成到现有的内部 DevOps 研发平台中。这需要调用 Bytebase API。
在本教程中,你将首先在 Bytebase 控制台中进行 schema 变更。然后,运行一个外部示例程序,通过调用 Bytebase API,在控制台外部触发进行 schema 变更。如果公司已有内部平台,但又期待获得 Bytebase 的某些能力,这个示例将向你展示 Bytebase 提供了这个方式。
API 示例程序开源地址:https://github.com/bytebase/api-example
前提
- 已安装 Docker
- Node.js >= v18
启动 Bytebase 并准备账户
- 确保 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
-
Bytebase 通过 Docker 运行,你可以通过
localhost:5678
访问它。注册第一个管理员账户,该账户将被授予工作区管理员权限。 -
以管理员用户身份登录,点击右上角的齿轮图标,然后点击工作区 > 成员。
-
打开创建为服务账户,填写
api-example
,选择本教程所需的 DBA 角色,然后点击添加.
- 在已激活部分找到新创建的服务账户,然后单击复制服务密钥。我们将使用此令牌验证 API 调用。
- 单击顶部栏上的选择项目,你会看到一个名为 Sample Project 的示例项目。点击它进入项目页面,这里有两个数据库:
hr_prod
和hr_test
。
在 Bytebase 控制台中变更 Schema
让我们先回顾一下如何直接从控制台创建 schema 变更。
- 在 Bytebase 控制台中,到 Sample Project。单击 hr_prod 的复选框,然后单击变更 Schema。
- 切换 SQL 语句,粘贴以下 SQL 语句并单击预览工单。
CREATE TABLE test_from_console (id integer NOT NULL);
- 单击创建,自动检查完成后,将自动发布变更。工单状态将成为完成。
通过 Bytebase API 变更 schema
下面是演示以下 API 的示例应用程序:
- 列出所有项目
- 列出项目下的所有数据库
- 在项目中创建 schema 变更工单
- 获取创建的工单状态
-
到 API 示例程序的开源地址:https://github.com/bytebase/api-example 并复制地址。
-
将
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 中复制的服务密钥
-
运行以下命令启动示例应用程序。
pnpm i && pnpm dev
- 在浏览器中打开应用程序,你将看到以下页面。
- 选择 Sample Project,然后选择
hr_prod
,输入以下 SQL 并单击创建新工单。
CREATE TABLE test_from_api ( id integer NOT NULL );
- 工单将被创建,你将看到以下页面。
- 单击链接 在 Bytebase[OPEN] 中查看工单 xxx,在 Bytebase 控制台中查看工单。你会发现工单自动发布,并变成完成状态。
- 返回示例程序,点击刷新状态。你会看到状态已从 [OPEN] 变为 [DONE]。
- 有关示例应用程序的其他信息,请参阅相应 GitHub 仓库中的 README https://github.com/bytebase/api-example#readme.
总结
恭喜!你已通过调用 Bytebase API 成功完成了 schema 变更。通过类似的方式,你可以将 Bytebase API 集成到现有的 DevOps 平台中,从而自动执行 schema 变更流程,并可以获得 Bytebase 的 SQL 审核、自定义审批流和 Schema 漂移检测等功能。
💡 更多资讯,请关注 Bytebase 公号:Bytebase

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
移动端防截屏录屏技术在百度账户系统实践
作者 | Seven 导读 在移动端应用的开发过程中,保护用户隐私和应用内敏感信息安全是一个不可忽视的课题。随着诈骗手段的升级,“共享屏幕”被诈骗分子频频使用,因为密码被泄露而导致受害者财物受损的事情层出不穷。只要开启了“共享屏幕”--本质上是一种录屏,密码、验证码等重要信息就会有被泄露的可能。防止截屏和录屏成为了一个重要的安全措施,特别是对于金融、医疗、企业和高安全要求的应用。本文将介绍一些在iOS和Android平台上实现防截屏和录屏的常见策略和方法,以及在百度账户系统上的实践。 全文4431字,预计阅读时间12分钟。 01 技术研究 1.1 Android平台防截屏策略 Android平台提供了一个更直接的方式来防止应用内容被截屏或录屏。Google 自 Android 4.2(API level 17)引入 FLAG_SECURE,用于将窗口内容标记为安全,禁止在屏幕截图中和非安全的显示器被输出。 /** Window flag: treat the content of the window as secure, preventing * it from appearing ...
- 下一篇
详解MRS HBase全局二级索引
本文分享自华为云社区《MRS HBase全局二级索引原理与使用场景》,作者:学习一下大数据 。 一、HBase二级索引背景介绍 HBase是基于Key-Value的分布式存储数据库,对表中的数据按照rowkey的字典进行排序;当已知要查询的数据rowkey或其范围,可以快速查找到需要读取的数据;HBase提供Filter功能来查询具有特定列值的数据,当无法确定rowkey范围时,条件查询会劣化为全表查询,表数据量较大的场景下,查询容易超时,无法满足查询时延要求。 与结构化数据库(例如MySQL)相似,HBase二级索引就是为了提升此类条件查询场景性能:查询条件无法精确/模糊匹配rowkey(类似于DB主键),同时严格要求查询时延。 二、MRS HBase二级索引原理 用户可以将定义经常查询的列定义为索引列,通过冗余存储索引列数据以达到加速查询的效果,将时间不可控的全表条件查询转换为区间条件查询,从而做到查询低时延。 MRS提供两种HBase二级索引:本地索引(HIndex)和 全局索引(GSI);两者的区别是: 索引数据存储方式:本地索引存储索引数据到用户表的一个单独的列族中,全局索引...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Hadoop3单机部署,实现最简伪集群
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS7设置SWAP分区,小内存服务器的救世主
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7,CentOS8安装Elasticsearch6.8.6
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作