用 Bytebase 实现可回滚的数据库数据变更

在修改数据库的数据时,建议先备份即将修改的数据,以便在需要时能够恢复。Bytebase 提供了「数据回滚」的功能来帮助实现这一功能。本教程将为你演示这一过程。

file

准备

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

  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.21.0(这里的 2.21.0 可以替换成最新版本)
  1. 注册第一个账户,它将自动获得工作区管理员角色。

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

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

file

第二步 - 准备 schema bbdataarchive

Bytebase 将备份数据存储在专们的位置。对于 Postgres,它存储在变更的数据库的 bbdataarchive schema 下。

  1. 进入 Sample Project,单击左边栏的数据库 > 数据库,选择 hr_test,然后单击编辑 schema。

  2. 在 schema 编辑器中,单击...,然后单击创建 schema。填写名称 bbdataarchive,然后单击创建。

file

  1. 可以看到绿字的 bbdataarchive,单击预览。创建工单并等待它自动发布,完成。现在 bbdataarchive schema 已创建。

file

第三步 - 变更数据并回滚

  1. 变更前,进入 SQL 编辑器,选择 hr_test,然后双击 employee,就会看到当前数据。我们将尝试变更 Georgi 这个名字。

file

  1. 再次进入 Sample Project 里的数据库 > 数据库,选择 hr_test,然后单击变更数据。

  2. 打开右侧的事先备份,在字段中输入 SQL,然后单击创建。

UPDATE employee SET first_name = 'Adela' WHERE emp_no = 10001;

file

  1. 工单创建并发布后,你可以看到有一个活动显示数据已备份到先前创建的 bbdataarchive schema 下的一个新表中。

file

  1. 再次访问数据库 > 数据库,然后单击 hr_test。

  2. 在数据库页面,选择 bbdataarchive schema,就可以看到备份表。

file

  1. 需要进一步验证的话,可以请进入 SQL 编辑器。选择 hr_test 中的 employee 表,输入以下 SQL 脚本并点击运行,就会看到数据已更改。

SELECT * FROM "public". "employee" ORDER BY emp_no LIMIT 50

file

  1. 选择 bbdataarchive 这个 schema,双击下面的表。你将在查询结果中看到备份数据。

file

需要特别注意的

如果你要使用 MySQL/SQL Server/Oracle,就不是创建 bbdataarchive schema ,而要创建 bbdataarchive 数据库来存储备份数据。更多详情请查看文档。https://www.bytebase.com/docs/change-database/rollback-data-changes/


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

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

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

相关文章

github上的工程如何下载子模块.gitmodules如何下载指定的模块download submodules开源项目子模块下载externals

github上的工程如何下载子模块.gitmodules如何下载指定的模块download submodules 说明(废话)解决方案无法执行下载子模块无法下载子项目 说明(废话) 今天在编译一个开源库时,该开源库依赖其他项目,并且项目还挺多的,所以有此解决方案 在编…

IDEA2023版本创建JavaWeb项目及配置Tomcat详细步骤!

一、创建JavaWeb项目 第一步 之前的版本能够在创建时直接选成Web项目,但是2023版本在创建项目时没有该选项,需要在创建项目之后才能配置,首先先创建一个项目。 第二步 在创建好的项目中选中项目后(一定要注意选中项目名称然后继…

UE4-打包游戏,游戏模式,默认关卡

一.打包游戏 注意windows系统无法打包苹果系统的执行包,只能使用苹果系统打包。 打包完之后是一个.exe文件。 打包要点: 1.确定好要操控的角色和生成位置。 2.设置默认加载的关卡和游戏模式。 在这个界面可以配置游戏的默认地图和游戏的模式,…

C/C++ xml库

文章目录 一、介绍1.1 xml 介绍1.2 xml 标准1.3 xml 教程1.4 xml 构成 二、C/C xml 库选型2.1 选型范围2.2 RapidXML2.3 tinyxml22.4 pugixml2.5 libxml 五、性能比较5.1 C xml 相关的操作有哪些5.2 rapidxml、Pugixml、TinyXML2 文件读取性能比较 六、其他问题6.1 version和 e…

Jangow

关于靶场环境配置,确实这个靶场存在很大的问题,不仅仅是网络的配置问题,更重要的是明知道如何修改网络环境配置,但是键盘存在很大的问题。许多字符输入不一致。 Vulnhub靶场,Jangow靶机环境找不到ip解决方法。_jangow…

算法力扣刷题记录 五十二【617.合并二叉树】

前言 二叉树篇,继续。 记录 五十二【617.合并二叉树】 一、题目阅读 给你两棵二叉树: root1 和 root2 。 想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会)。你需要…

自动驾驶-2D目标检测

yolo及yolo的变体 anchor boxes (锚框) intersection over union 并集交集 用于计算两个边界框的差异程度 bounding box predictions 边界框预测 non maximum suppression非极大值抑制 为了分离这些边界框并为每个对象获得单个边界框,我们使用IOU。这种获取单…

【学术会议征稿】第六届信息与计算机前沿技术国际学术会议(ICFTIC 2024)

第六届信息与计算机前沿技术国际学术会议(ICFTIC 2024) 2024 6th International Conference on Frontier Technologies of Information and Computer 第六届信息与计算机前沿技术国际学术会议(ICFTIC 2024)将在中国青岛举行,会期是2024年11月8-10日,为…

区块链技术在版权保护领域的应用

区块链技术具有去中心化、不可篡改、可追溯等特点,使其在版权保护领域具有广阔的应用前景。具体而言,区块链技术可以应用于以下几个方面。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 1. 版权确权 版权确权…

微信小程序实现拉起微信支付功能-最简单版

里面有很多逻辑需要大家自己写啊,比如订单获取啊,生成订单啊,变更订单状态,退款啊,等等的,我这里就实现了一个基本的功能,就是拉起支付,支付到账这样的,大家根据需求自己…

一分钟了解半导体行业国产通讯方案

随着半导体行业的快速发展,半导体通讯设备国产化的需求日益强烈,ZLG致远电子基于行业需求,推出系统的DeviceNet主从站控制和网关通讯方案。 ▌半导体行业中DeviceNet的应用 半导体行业中设备一般分为前道设备和后道设备。前道是指晶圆制造厂的加工过程,在空白的硅片完成电…

SAPUI5基础知识15 - 理解控件的本质

1. 背景 经过一系列的练习,通过不同的SAPUI5控件,我们完成了对应用程序界面的初步设计,在本篇博客中,让我们一起总结下SAPUI5控件的相关知识点,更深入地理解SAPUI5控件的本质。 通常而言,一个典型UI5应用…

网络编程-TCP 协议的三次握手和四次挥手做了什么

TCP 协议概述 1. TCP 协议简介 TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。 TCP 协议提供可靠的通信服务,通过校验和、序列号、确认应答、重传等机制保证数据传输…

Uniapp 组件 props 属性为 undefined

问题 props 里的属性值都是 undefined 代码 可能的原因 组件的名字要这样写,这个官方文档有说明

美图WHEE AI:包括文生图、图生图、风格模型训练多种模式图片创作绘画创作平台

美图WHEE AI是一款基于MiracleVision模型的创作平台,提供文生图和图生图功能。用户可以通过输入文字或上传照片生成画作,并自定义风格。美图通过收购站酷网,增强了模型商店和版权能力,丰富了产品线。 美图WHEE功能演示观看请到喜…

华为“铁三角模式”在数据类项目中的应用和价值

引言:随着信息技术的飞速发展,企业纷纷踏上数字化转型的道路,希望通过数据分析和智能决策来提升企业竞争力。在这一过程中,数据类项目成为关键,它们旨在构建高效的数据治理和分析平台,为企业决策提供有力支…

MSVC2017+Qt 打包

在环境变量下配置好 QT 和 MSVC 的路径 相关搜索: 找不到msvcp140.dll 1.搜索 Qt 选择在编译器路径下打开 2. Windeployqt 生成打包,正常情况下生成 VC 相关package, 即 msvcp140.dll 等MSVC 相关 但是lz尝试没有生成 解决办法 先将生成…

【开源 Mac 工具推荐之 2】洛雪音乐(lx-music-desktop):免费良心的音乐平台

旧版文章:【macOS免费软件推荐】第6期:洛雪音乐 Note:本文在旧版文章的基础上,新更新展示了一些洛雪音乐的新功能,并且描述更为详细。 简介 洛雪音乐(GitHub 名:lx-music-desktop )…

CTF-Web习题:[BJDCTF2020]ZJCTF,不过如此

题目链接:[BJDCTF2020]ZJCTF,不过如此 解题思路 访问靶场链接,出现的是一段php源码,接下来做一下代码审阅,发现这是一道涉及文件包含的题 主要PHP代码语义: file_get_contents($text,r); 把$text变量所…

One-Class SVM

前提知识:支持向量机(SVM)-CSDN博客 主要思想 找一个超平面将样本中的正例圈出来,预测就是用这个超平面做决策,在圈内的样本就认为是正样本,圈外的是其他样本,如图1所示: 图1 OSVM…