暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

通过 Bytebase API 做数据库 Schema 变更

Bytebase 2023-12-26
195

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 并准备账户

1.  确保 Docker 正在运行。复制并粘贴命令以启动 Bytebase。

    docker run --init \  --name bytebase \  --restart always \  --publish 5678:8080 \  --health-cmd "curl --fail http://localhost:8080/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

    2. Bytebase 通过 Docker 运行,你可以通过 localhost:5678 访问它。注册第一个管理员账户,该账户将被授予工作区管理员权限。

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

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

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

    6. 单击顶部栏上的选择项目,你会看到一个名为 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);
      3. 单击创建,自动检查完成后,将自动发布变更。工单状态将成为完成

      通过 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


        4. 在浏览器中打开应用程序,你将看到以下页面。
        5. 选择 Sample Project,然后选择 hr_prod,输入以下 SQL 并单击创建新工单
          CREATE TABLE test_from_api (  id integer NOT NULL );
          6. 工单将被创建,你将看到以下页面。
          7. 单击链接 在 Bytebase[OPEN] 中查看工单 xxx,在 Bytebase 控制台中查看工单。你会发现工单自动发布,并变成完成状态。
          8. 返回示例程序,点击刷新状态。你会看到状态已从 [OPEN] 变为 [DONE]。
          9. 有关示例应用程序的其他信息,请参阅相应 GitHub 仓库中的 README https://github.com/bytebase/api-example#readme
          总结
          恭喜!你已通过调用 Bytebase API 成功完成了 schema 变更。通过类似的方式,你可以将 Bytebase API 集成到现有的 DevOps 平台中,从而自动执行 schema 变更流程,并可以获得 Bytebase 的 SQL 审核自定义审批流schema 漂移检测等功能。
          用 Bytebase 做数据库 schema 变更 
          上 GitHub 热榜,星星暴涨,提前完成一个全年目标 ⚡️
          关于数据库国产化的 10 大真相
          State of PostgreSQL 2023 报告解读

          文章转载自Bytebase,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

          评论