初体验| 使用Bytebase进行数据库CI/CD变更

笔者一直在关注数据库领域的DevOps最佳实践,今天笔者尝试Bytebase产品来对数据库进行变更。时间有限暂时体验了下web页面进行变更,整个过程还是很流畅的。特此整理体验的整个过程,推荐和我一样关注数据库DevOps实践的伙伴也亲自体验下。

以下是笔者的体验过程:

1. 快速部署

使用docker-compose快速部署。可以参考官方文件URL:https://raw.githubusercontent.com/bytebase/bytebase/main/quickstart/getting-started.docker-compose.yml 。我在本地的compose文件如下所示:

version: "3.7"

services:
  bytebase:
    image: bytebase/bytebase:1.12.0
    init: true
    container_name: bytebase
    restart: always
    ports:
      - 5678:5678
    # # Uncomment the following lines to persist data
    # volumes:
    #   - ~/.bytebase/data:/var/opt/bytebase
    command: ["--data", "/var/opt/bytebase", "--port", "5678"]

  employee-prod:
    image: bytebase/sample-database:mysql-employee-small
    ports:
      - 3306:3306

  employee-test:
    image: bytebase/sample-database:mysql-employee-small
    ports:
      - 3307:3306

以上代码会部署bytebase和两个用于测试的数据库employee-prodemployee-test。通过命令docker-compose up -d 运行。

c408488f3c4eec4338823e2f40bb941b.png
访问 http://localhost:5678/  第一次访问需要注册管理员账号。如图所示:填写邮箱、密码、用户名信息并接受Bytebase的服务条款和隐私策略。

c6eae6bb1414dfa806cec236a34664b7.png
图片.png

2. 创建环境

导航到“环境”菜单, 默认存在TestProd(如果存在多个环境例如STG、UAT等等可以选择创建环境) prod环境需要人工审批后才可以执行。425e8e371a783c8ea685bed0c92fec76.png
267dc2cc52b2920367ba678126d2022e.png

3. 添加实例

导航到“实例”菜单, 添加实例。将启动的两个数据库实例加入平台中。
首先添加test实例,选择环境Test输入数据库的账号和密码,然后点击测试连接进行测试。如果提示测试成功则点击“创建”按钮完成实例添加。
4adb0132d3976d2a13df3b4743640f6e.png
然后可以看到当前数据库的同步状态:
14d804f74053b21e0ac0c4ab13a57522.png
重复以上步骤添加PROD数据库实例,注意环境选择PROD。最终实例如下:
c40af42a55e4c20072ad5851d8995666.png

4. 数据库变更

将数据库关联项目
employee表中添加一列nickname  在 Bytebase 中,Project 是包含和管理数据库的单元。因此,在处理示例数据库之前,您需要先将它们关联到项目中。参考下图创建项目。
1cad59991e69545fd02b694499bb563e.png
转移数据库
将测试和生产环境的DB实例中的库转移到项目中。
df6dc63cdb29cfecd3e4f1dfaafd4ea3.png
变更Schema

e9df402b1f2601b2b5aae0457f314494.png
填写变更SQL,然后预览工单。选择普通变更。
818e0ce2731b7efa96f31ab0f2a088dc.png然后会生成一个工单,如图所示:

「工单」代表了开发人员和 DBA 之间的合作活动,如创建数据库,改变 schema。它类似于其他管理工具中的工单概念。

ae8af3b3ea3857b5ab2583cae03ad569.png填写好Test Stage的变更SQL, 点击应用到其他Stage会将SQL语句自动同步到Prod Stage的SQL,然后点击右上角“创建”完成工单创建。然后会自动进行任务检查包括 语法、语句类型、连接、变更schema、SQL审查。
eb4eed29ba646d8712430516efb5bffe.png
Prod数据设置的变更需要审批, 点击右上角“批准”即可运行生产环境的数据变更。
cdaeaff3a39b7ae3abbfd6d71edce41b.png
变更完成
302901b80c8aa16c6be346ff3f01e385.png

5. 验证变更

进入数据库,选择SQL 编辑器.
52391673354aa0ff3e992e1047223cd9.png
查询表字段,发现nikename字段已经添加成功。

test环境DB截图:
51b5cb6b0b9ee199639489f6c2d2680d.png
prod环境DB截图:
ad0d232ad812a055c5fca11eb329e2e4.png

6. 解决工单

通过上面的变更和验证,变更成功。将工单状态更新为“解决”
进入工单首页:
78761277c1dd44977bb7836a4f409637.png
将工单状态标记为解决。
e271b16340d583d7a16611b5081d1ab0.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值