查看原文
其他

初体验| 使用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 运行。


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

图片.png


2. 创建环境

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


3. 添加实例

导航到“实例”菜单, 添加实例。将启动的两个数据库实例加入平台中。
首先添加test实例,选择环境Test输入数据库的账号和密码,然后点击测试连接进行测试。如果提示测试成功则点击“创建”按钮完成实例添加。

然后可以看到当前数据库的同步状态:

重复以上步骤添加PROD数据库实例,注意环境选择PROD。最终实例如下:


4. 数据库变更

将数据库关联项目
employee表中添加一列nickname  在 Bytebase 中,Project 是包含和管理数据库的单元。因此,在处理示例数据库之前,您需要先将它们关联到项目中。参考下图创建项目。

转移数据库
将测试和生产环境的DB实例中的库转移到项目中。

变更Schema


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

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

填写好Test Stage的变更SQL, 点击应用到其他Stage会将SQL语句自动同步到Prod Stage的SQL,然后点击右上角“创建”完成工单创建。然后会自动进行任务检查包括 语法、语句类型、连接、变更schema、SQL审查。

Prod数据设置的变更需要审批, 点击右上角“批准”即可运行生产环境的数据变更。

变更完成


5. 验证变更

进入数据库,选择SQL 编辑器.

查询表字段,发现nikename字段已经添加成功。

test环境DB截图:

prod环境DB截图:


6. 解决工单

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

将工单状态标记为解决。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存