ThingsBoard版本控制配合Gitee实现版本控制

                  1、概述

2、架构

3、导出设置

4、仓库

5、同步策略

6、扩展

7、案例

7.1、首先需要在Giitee上创建对应同步到仓库地址

​7.2、giit仓库只能在租户层面进行配置

7.3、 配置完成后:检查访问权限。显示已成功验证仓库访问!表示配置成功

 7.4、添加设备进行版本管理

7.5、创建​

 7.6、显示版本信息 ​

7.7、查看Gitee仓库是否推送成功 

7.8、测试还原版本

7.9、配置自动提交策略

7.10、修改设备并查看版本情况

7.11、测试数据恢复

7.12、点击对应行恢复的版本

7.13、选择想恢复的内容,并点击恢复

7.14、 提示回复版本​

7.15、查看设备信息,验证是否恢复


1、概述

ThingsBoard版本控制服务提供了使用Git导出和恢复实体的功能租户管理员可以使用UI或REST API配置对Git存储库的访问权限,平台用户可以导出单个或多个实体、浏览版本历史记录并将实体还原到指定版本。

当多个工程师设计相同的规则链或仪表板时此功能可改善用户体验并简化CI/CD还允许你轻松地在租户或平台实例之间解决方案克隆。

总结:测试环境的数据,可同步到生成环境 

2、架构

每个ThingsBoard实体都有”ID”字段用于标识实体的唯一导出的实体都包含新提交的”externalId”该字段用于在多个实例之间导入和导出时标识同一实体,”id”和”externalId”字段的类型均为UUID。

“externalId”还用于自动替换规则链(规则节点)和仪表板(别名和部件操作)中的实体ID,如果你决定导入引用某些设备或资产的规则链请确保也导出/导入了相应的设备或资产。

3、导出设置

本支持以下实体:设备、资产、实体视图、客户、仪表板、部件包、规则链、实体组、角色、转换器和集成

系统有意省略了对用户实体的支持因为用户电子邮件在平台实例的范围内是唯一的如果将电子邮件和凭据导出到Git会存在错误。

导出实体时我们将实体的JSON表示形式存储在Git中还可以导出实体属性、关系和凭据(仅限设备)。

4、仓库

首次将实体导出到Git时实体”id”用于命名git存储库中的文件。
当将实体从Git导入ThingsBoard时文件名中的”id”将成为实体的”externalId”。
externalId”在租户范围内是唯一的因此可以在同一平台实例的租户之间或不同实例之间导入/导出实体每次执行导出和导入操作时通过”externalId”用于查找更新实体。
请参阅下面的示例:

假设你有开发了一个实例并导出了一个名为”Dashboard 1”和ID为”4864b750-da7d-11ec-a496-97fa2815d2fe”的单个仪表板然后存储库将具有具有以下全名和路径的单个文件:

5、同步策略

平台支持两种导出到Git的同步策略:合并和覆盖
“合并”是默认的同步策略它只是将选定的实体附加到存储库当你想要保存一个或多个文件而不从存储库中删除所有其他文件时此策略非常有用。
“覆盖”策略完全重写相应的存储库文件当你想要完全同步实例和Git存储库中的实体列表(例如控制面板)时此策略会覆盖之前保存到Git的实例中并删除平台不存在Git中的其它实体都。

6、扩展

ThingsBoard版本控制服务可作为单体式ThingsBoard实例的一部分提供也可作为单独的微服务提供以实现水平可扩展性。
版本控制服务的每个实例都负责处理群集中租户的特定分区的同步任务每个”commit”API调用可能需要一些时间,不支持同一租户范围内的并发”commit”调用API。
如果”commit”API调用正在进行并且新的”commit”API调用到达系统将取消该调用。 

7、案例

7.1、首先需要在Giitee上创建对应同步到仓库地址
7.2、giit仓库只能在租户层面进行配置,
选择:高级设置-版本控制 

仓库URL:就是你仓库仓库的地址

默认分支名称:你想同步分支的名称

身份证验证:Gitee的账号和密码

7.3、 配置完成后:检查访问权限。显示已成功验证仓库访问!表示配置成功

 7.4、添加设备进行版本管理

7.5、创建
 7.6、显示版本信息 
7.7、查看Gitee仓库是否推送成功 

7.8、测试还原版本

7.9、配置自动提交策略

自动提交能可以通过UI或REST API调用保存实体时自动提交仪表板和规则链,自动提交是异步方式进行以改善UI体验当将实体分配给客户(更改实体所有者)时不会发生自动提交,在这种情况下应使用覆盖策略提交特定实体类型的所有实体。对某类实体进行修改后,无需做提交,会自动进行提交,防止遗忘 

7.10、修改设备并查看版本情况

7.11、测试数据恢复

删除对应设备信息

7.12、点击对应行恢复的版本

7.13、选择想恢复的内容,并点击恢复

7.14、 提示回复版本
7.15、查看设备信息,验证是否恢复

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

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

相关文章

”数组指针变量与函数指针变量“宝典

大家好呀,我又来啦!最近我很高效对不对,嘿嘿,被我自己厉害到了。 这一节的内容还是关于指针的,比上一期稍微有点难,加油!!! 点赞收藏加关注,追番永远不迷路…

AI大事记(持续更新)

文章目录 前言 一、人工智能AI 1.基本概念 2.相关领域 2.1基础设施 2.2大模型 2.3大模型应用 二、大事记 2024年 2024-05-14 GPT-4o发布 2024-02-15 Sora发布 2023年 2023-03-14 GPT-4.0发布 2022年 2022-11-30 ChatGPT发布 总结 前言 2022年11月30日openai的…

从零开始学习Linux(6)----进程控制

1.环境变量 环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数,我们在编写C/C代码时,链接时我们不知道我们链接的动态静态库在哪里,但可以连接成功,原因是环境变量帮助编译器进行查找,环境变量通常具有…

QT中C端关闭导致S端崩溃问题

在实现多线程C/S通信时,有一个bug卡了我好久——当有一个C端关闭时,S端会崩溃。 经过一条条函数语句的筛查,终于找到问题出在哪里: 我通过类QList和迭代器来存储、访问C端链接的socket,而我在deleteSocket中delete迭…

【农业期刊】转基因作物的利弊分析

摘要概述1 转基因作物的优越性1.1 被修饰生物体的基因的遗传具有稳定性1.2 减少除草剂和农药用量1.3 资源可再生,符合可持续发展观念1.4 改生存环境、增产增收解决人类温饱问题 2 转基因作物的带来的不利影响2.1 影响农业种植制度2.2 转基因技术带来的基因污染2.2.1…

【爬虫之scrapy框架——尚硅谷(学习笔记two)--爬取电影天堂(基本步骤)】

爬虫之scrapy框架--爬取电影天堂——解释多页爬取函数编写逻辑 (1)爬虫文件创建(2)检查网址是否正确(3)检查反爬(3.1) 简写输出语句,检查是否反爬(3.2&#x…

Codeforces Round 920 (Div. 3) D. Very Different Array (贪心)

Petya 有一个由 n n n 个整数组成的数组 a i a_i ai​ 。他的弟弟 Vasya 很羡慕,决定自己也做一个 n n n 个整数的数组。 为此,他找到了 m m m 个整数 b i ( m ≥ n ) b_i ( m≥n ) bi​(m≥n),现在他想从中选择一些 n n n 个整数并按…

电力系统潮流计算的计算机算法(一)——网络方程、功率方程和节点分类

本篇为本科课程《电力系统稳态分析》的笔记。 本篇为这一章的第一篇笔记。下一篇传送门。 实际中的大规模电力系统包含成百上千个节点、发电机组和负荷,网络是复杂的,需要建立复杂电力系统的同一潮流数学模型,借助计算机进行求解。 简介 …

免费Premiere模板,几何图形元素动画视频幻灯片模板素材下载

Premiere Pro模板,几何图形元素动画视频幻灯片模板 ,组织良好,易于自定义。包括PDF教程。 项目特点: 使用Adobe Premiere Pro 2021及以上版本。 19201080全高清。 不需要插件。 包括帮助视频。 免费下载:https://prmu…

Fabric实现多GPU运行

官方的将pytorch转换为fabric简单分为五个步骤: 步骤 1: 在训练代码的开头创建 Fabric 对象 from lightning.fabric import Fabricfabric Fabric() 步骤 2: 如果打算使用多个设备(例如多 GPU),就调用…

NIO使用NIO传输图片

相比于传统的阻塞IO,NIO提供了一种更灵活和高效的 I/O 操作方式,NIO 提供的非阻塞式的 I/O 操作,使得一个单独的线程可以管理多个通道(Channel),从而更好地处理并发连接和大量的 I/O 操作。 1. 核心组件 …

高级个人主页

高级个人主页 效果图部分代码领取源码下期更新预报 效果图 部分代码 <!DOCTYPE html> <html lang"en"><head><meta charset"utf-8" name"viewport" content"widthdevice-width, initial-scale1, maximum-scale1, use…

ESP32重要库示例详解(四):获取NTP时间之time库

在物联网项目中&#xff0c;时间同步和管理是至关重要的功能之一&#xff0c;特别是在需要执行定时任务或记录事件时间戳的场景下。Arduino平台通过其内置的<time.h>库提供了强大的时间处理能力&#xff0c;使得开发者能够方便地与网络时间协议&#xff08;NTP&#xff0…

PDF文件转换为CAD的方法

有时候我们收到一个PDF格式的设计图纸&#xff0c;但还需要进行编辑或修改时&#xff0c;就必须先将PDF文件转换回CAD格式。分享两个将PDF转换回CAD的方法&#xff0c;一个用到在线网站&#xff0c;一个用到PC软件&#xff0c;大家根据情况选择就可以了。 ☞在线CAD网站转换 …

css超出部分省略(单行、多行,多种方法实现)

HTML <p class"text">这是一行测试数据,这是一行测试数据,这是二行测试数据,这是一行测试数据,这是三行测试数据,这是四行测试数据</p>1.单行 .text{width: 200px;border: 1px solid #000000;white-space: nowrap; /* 控制元素不换行 */overflow: hi…

单链表与双链表

实现一个单链表,链表初始为空,支持三种操作: 向链表头插入一个数;删除第 k 个插入的数后面的一个数;在第 𝑘 个插入的数后插入一个数。现在要对该链表进行 M 次操作,进行完所有操作后,从头到尾输出整个链表。 注意:题目中第 k 个插入的数并不是指当前链表的第 k 个数…

fuel无人机自主探索代码解读1——map_ros.cpp【地图ros接口】

一、概述 map_ros.cpp订阅深度图/雷达点云、世界坐标下传感器pose&#xff0c;每0.05s启动esdf地图更新&#xff0c;每0.05s进行全局地图和局部地图可视化。主要功能为&#xff1a;接受传感器数据、调用sdf_map.cpp文件内部膨胀地图及esdf地图更新接口、地图可视化等。涉及传感…

Python笔记:比较运算符

比较运算符也叫关系运算符。 Python的比较运算符及用法&#xff1a; 比较运算符描述写法等于x y!不等于x ! y>大于x > y<小于x < y>大于等于x > y<小于等于x < y 1、比较运算符会返回布尔类型的结果。&#xff08;True / False&#xff09; num1 …

数电发票、全电发票为什么不是连号的?Node.js发票查验接口集成

全电发票号码为全国统一赋码&#xff0c;采用的是20位发票号码&#xff0c;其实是连续的。只是在实际开票过程中&#xff0c;不止一位纳税人在开&#xff0c;有其他纳税人也在开&#xff0c;所以会出现对某一个纳税人来说号码没有连续的情况。那么&#xff0c;全电发票如何进行…

Django图书馆综合项目-学习(2)

接下来我们来实现一下图书管理系统的一些相关功能 1.在书籍的book_index.html中有一个"查看所有书毂"的超链接按钮&#xff0c;点击进入书籍列表book_list.html页面. 这边我们使用之前创建的命名空间去创建超连接 这里的book 是在根路由创建的namespacelist是在bo…