用 Bytebase 实现批量、多环境、多租户数据库的丝滑变更

news2024/9/26 3:28:42

Bytebase 提供了多种功能来简化批量变更管理,适用于多环境或多租户情况。本教程将指导您如何使用 部署配置 和 数据库组 在不同场景下进行数据库批量变更。

file

默认流水线 vs 部署配置

file

图片数据库 vs 数据库组

1. 准备

  1. 请确保已安装 Docker,如果本地没有重要的现有 Bytebase 数据,可以通过 rm -rf ~/.bytebase/data 从头开始。

  2. 这是企业版的功能,您可以通过添加小助手申请(见文末二维码)。

2. 过程

第一步 - 启动 Bytebase 并准备数据库

为了演示批量更改,我们需要先准备一些数据库。

  1. 复制并粘贴命令,通过 Docker 启动 Bytebase。
docker run --rm --init \  --name bytebase  --publish 8080:8080 --pull always \  --volume ~/.bytebase/data:/var/opt/bytebase \  bytebase/bytebase:2.22.0(这里的 2.22.0 可以替换成最新版本)
  1. 注册第一个账户,它将自动获得工作区管理员角色。
  2. Bytebase 提供了两个 PostgreSQL 实例示例。点击顶部栏的选择项目,在弹出窗口中点击新建,然后点击创建。

file

  1. 进入项目,点击左侧栏上的数据库 > 数据库。目前还没有属于此项目的数据库。点击新建数据库。要模拟真实世界的场景,首先创建 demo-test,它应在样本测试实例上创建。将自动创建一个工单,因为我们没有配置任何发布机制或自定义审批工作流程,所以它会自动发布。工单创建完成后,数据库将被建立。

file

file

  1. 用同样的方法,创建 demo-prod-1、demo-prod-2、demo-prod-3、demo-prod-4、demo-prod-5、demo-prod-6、other-prod-1 和 other-prod-2。

file

  1. 选择 demo-prod-1 和 demo-prod-2 ,单击编辑标签。指定:标签键「位置」,值「asia」。用同样的方法将 eu 和 na 分配给其他 demo-prod 数据库。

file

file

第二步 - 部署配置 (社区版)

这部分将向你展示部署配置给发布流水线带来的不同。

  1. 进入项目中的 数据库 > 数据库,选择 demo-test 和 demo-prod-1~demo-prod-6 并单击编辑 schema 。填写 SQL,然后单击创建。可以看到流水线有两个阶段 -- 测试和生产,并且有六个数据库,这意味着 SQL 将同时在这六个数据库运行。
CREATE TABLE t2("id" INTEGER NOT NULL);

file

file

  1. 如果想先变更亚洲 asia,然后更改欧盟 eu,最后更改北美 na,可以留在项目中,单击左侧栏上的部署配置,添加带有标签过滤功能的新阶段。

file

  1. 到项目中的数据库 > 数据库,选择 demo-test 和 demo-prod-1~demo-prod-6 并单击编辑模式。填写 SQL,然后单击创建。可以看到流程有四个阶段,就像我们配置的那样。
CREATE TABLE t1("id" INTEGER NOT NULL);

file

第三步 - 数据库组(企业版)

这部分开始需要升级系统到企业版才能激活。

  1. 点击右上角的设置齿轮图标,然后点击工作区 > 订阅上传许可。

  2. 单击铅笔图标,选择要启用企业功能的实例,然后单击确认。这里是将许可分配给了实例,为对应实例开启企业版功能。

file

  1. 到项目中的数据库 > 组,单击新建数据库组,填写以下字段,向下滚动时,你会看到有一个选项多租户,暂时不要选中它,然后单击保存。

名称:demo-prod-all

条件:环境 == Prod,数据库名称以 demo-prod- 开头

file

file

  1. 到项目中的 数据库 > 组,单击编辑 schema,选择数据库组,然后单击下一步。

file

  1. 可以看到六个数据库分为三个阶段。填写 SQL,然后单击创建。
CREATE TABLE t3("id" INTEGER NOT NULL);

file

  1. 到项目中的数据库 > 数据库,然后单击新建数据库。创建属于数据库组的数据库 demo-prod-7。检查 schema,它是空的。

file

第四步 - 多租户数据库组(企业版)

  1. 数据库组启用多租户功能后,新数据库将自动继承数据库组的 schema。

  2. 到项目中的数据库 > 组,单击配置,这次我们选中多租户,然后单击确认。

  3. 到项目中的数据库 > 数据库,然后单击新建数据库。创建属于数据库组的数据库 demo-prod-8。检查 schema,它与其他 demo-prod 数据库的schema 相同。请注意,即使在工单执行或称重问题,新数据库也会被添加。

file

总结

现在,你已学会如何使用部署配置和数据库分组在 Bytebase 中运行批量更改。动手试试吧!


💡 更多资讯,请关注 Bytebase 公号:Bytebase

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Ubuntu 24.04 LTS Noble安装OpenSSH服务器

OpenSSH 服务器在 Ubuntu Linux 上提供安全外壳 ( SSH) 协议,以便远程管理系统,同时提供高级别的加密,确保安全。虽然许多 Linux 系统默认配备 OpenSSH 服务器,但在 Ubuntu 24.04 上,我们必须手动安装它。因此&#x…

新版Next.js 15中5个令人惊叹的特性

前端岗位内推来了 Next.js 15已经到来,一切比以往更好! 从全新的编译器到700倍更快的构建时间,创建具有卓越性能的全栈Web应用从未如此简单。 让我们探索v15的最新特性: 1. create-next-app升级:更清晰的UI&#xff0c…

【Spring Boot】手撕搜索引擎项目,深度复盘在开发中的重难点和总结(长达两万6千字的干货,系好安全带,要发车了......)

目录 搜索引擎搜索引擎的核心思路 一、解析模块1.1 枚举所有文件1.2 解析每个文件的标题,URL以及正文1.2.1 解析标题1.2.2 解析URL1.2.3 解析正文 1.3 线程池优化代码 二 、创建排序模块2.1 构建正排索引2.2 构建倒排索引2.3 序列化2.4 反序列化 三、搜索模块3.1 引…

CTF web cookie考题

CTF web cookie考题 题目名称:cookie 题目名称:cookie 1.进入服务器界面 : 2.打开 浏览器内 ——>开发者工具 网络 查看 或按F12 3. 根据自己服务器地址 后缀加入\cookie.php 进入查看 4.进入cookie.php文件 点击文件查看 5.找出flag

2023华为OD面试手撕代码经验分享

我们先来看下这个同学的面试经历吧,非常有借鉴的意义。 【22届考研渣渣的od求职之旅,推荐一下两个人,德科hr和牛客的老哥】 "*********",hr给了机会吧,一开始我都没想到od这边。 还有我关注里面的老哥&#…

postgresql启动故障【已解决】

故障原因 暂时未知,电脑重启后postgresql无法正常运行,尝试重启遇到如下错误 本地计算机 上的 postgresql-x64-12 服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止。 排查过程 查看系统日志,发现pid已存在【计算机管理——…

sqli-labs-master less1-less6

目录 通关前必看 1、判断是否存在sql注入以及是字符型还是数值型: 2、各种注入方式以及方法 有回显型: 报错注入(只有ok和no的提示以及报错提示): 详细思路,后面的题都可以这样去思考 关卡实操 less…

vue2中使用jsx基础

1、基本的模板 <script lang"jsx"> export default {name: demo1,// 数据定义data() {return {info: {age: 18,}}},created() {},methods: {},render() {return (<div><div>我是小明&#xff0c;今年{this.info.age}</div></div>)} }…

逐行重现 GPT-2:第 2 部分 - 硬件优化

Andrej Karpathy 的“让我们重现 GPT-2 (124M)”第 2 部分中的硬件优化 欢迎来到雲闪世界。为了撰写这篇博文&#xff0c;我在 Google Colab 免费提供的 NVIDIA T4 GPU 和 Lambda Labs 的 NVIDIA A100 GPU 40GB SXM4 上都进行了优化。Karpathy 介绍的大多数优化都是针对 A100 或…

MES系统在数字化转型中的核心作用与影响

数字化转型是企业利用数字技术改变其业务模式、运营方式、组织结构、产品服务等方面的过程&#xff0c;旨在提高效率、降低成本、增强竞争力并实现可持续发展。数字化转型涉及多个层面&#xff0c;主要包括以下几个方面&#xff1a; 数字化转型转什么 转战略&#xff1a;由构…

VLC实现视频文件转RTSP流

1.选择本地文件 2.创建流 现在已经开始推流了&#xff1a; 3.播放上面创建的流 访问地址&#xff1a;rtsp://:8554/test111

OJ-0802

题目 分析 要点&#xff1a;在排队的基础上移动学生位置&#xff0c;实现要求的分组&#xff0c;分组的顺序不做要求&#xff0c;求移动学生次数的最小值。 实现方案&#xff1a;考虑Map 参考 解题思路&#xff1a; 1.建立索引字典:将学生目前排队情况转换成索引字典,其中键…

使用Git管理ECAD软件元器件库

在日常工作中&#xff0c;很多工程师习惯维护和使用自己的元器件库&#xff0c;这样可以方便的查找和使用元器件。但是&#xff0c;如果元器件库中的元器件数量较多&#xff0c;且元器件的版本较多&#xff0c;那么维护元器件库就会变得非常困难。还有&#xff0c;企业中的研发…

基于JAVA的进销存管理系统的设计与实现

点击下载源码 基于JAVA的进销存管理系统的设计与实现 摘 要 进入21世纪以来&#xff0c;商业管理中需要处理的数据和信息越来越多。大量的数据和繁杂的数据使得古老的手工处理数据的方式渐渐显得力不从心。甚至有些信息处理的方式在手工处理的模式下是根本无法是实现的&…

ggplot2 添加文字信息,设置黑体、斜体、旋转、对齐

目的&#xff1a;图中添加文字。 1. 每个点都添加文字 效果不好。 保持文字颜色和点一致&#xff0c;就没法斜体。 设置斜体&#xff0c;就没法保持文字颜色。 library(ggplot2) p1ggplot(iris, aes(Sepal.Length, Sepal.Width, colorSpecies))geom_point(size1.5)theme_cl…

HarmonyOS入门

HarmonyOS 系统定义 HarmonyOS 是一款面向万物互联时代的、全新的分布式操作系统。 Harmony提出了基于同一套系统能力、适配多种终端形态的分布式理念&#xff0c;能够支持手机、平板、智能穿戴、智慧屏、车机等多种终端设置&#xff0c;提供全场景&#xff08;移动办公、运动…

QCA2066 Linux下5g 6g自适应测试方法

注意事项:如需要重启pc,需要执行rmmod wlan.ko和rmmod wlan_cnss_core_pcie.ko命令,然后重启。测试底板上电过程,需要将底板先插上电源,然后将底板pcie接口插入pc。 5g测试 启动电脑进入红色的标签Advanced options Ubuntu,然后回车 选择Ubuntu,with Linux 4.9.11+的内…

86. UE5 RPG 技能面板实现监听数据

在上一篇文章里&#xff0c;我们创建了技能面板的控制器&#xff0c;接下来&#xff0c;我们将实现通过控制器绑定委托&#xff0c;来更新显示内容。 更新技能面板应用的技能 我们首先更新技能面板上面已经应用的技能&#xff0c;让其和WBP_Overlay上面一样&#xff0c;可以更…

从零开始掌握tcpdump:参数详解

Linux tcpdump命令详解 1. 语法 tcpdump [-adeflnnNOpqStvxX] [-c <数据包数目>] [-dd] [-ddd] [-F <表达文件>] [-i <网络界面>] [-r <数据包文件>] [-s <数据包大小>] [-tt] [-T <数据包类型>] [-vv] [-w <数据包文件>] [输出数…

https执行过程,特点,作用

还是大剑师兰特&#xff1a;曾是美国某知名大学计算机专业研究生&#xff0c;现为航空航海领域高级前端工程师&#xff1b;CSDN知名博主&#xff0c;GIS领域优质创作者&#xff0c;深耕openlayers、leaflet、mapbox、cesium&#xff0c;canvas&#xff0c;webgl&#xff0c;ech…