Skip to content

系统升级 ​

系统平台 → 系统升级,用于升级 ThinkLink 自身(不是网关、不是固件)。

系统升级

页面顶部显示当前部署的核心版本信息:

字段含义
mode部署形态:gw(TKG,网关版) / tke(独立部署版) / tkc(Docker 容器部署)
DB.Ver当前数据库 schema 版本
P.Ver当前程序版本

关键:TKG 与 TKE 升级包不通用 ​

后端会根据当前 mode 校验上传包的文件名前缀,传错包会直接被拒:

当前 mode接受的升级包前缀示例
gwtkg 开头tkg-2.00.020.tar.gz
tke 或 tkctke 开头tke-2.00.020.tar.gz

不要混传

  • TKG 包(tkg-*.tar.gz)只能传给 mode=gw 的网关版部署。
  • TKE 包(tke-*.tar.gz)可以传给 mode=tke 或 mode=tkc 的部署,独立部署和 Docker 部署共用同一类包。
  • 上传错前缀的包会立即报"The upgrade package name is invalid"。

升级流程 ​

  1. 备份数据库(强烈建议)。
  2. 准备好与当前 mode 匹配的 .tar.gz 升级包。
  3. 点页面上的 上传并升级,选择升级包。
  4. 后端自动完成以下动作:
    • 把上传的 .tar.gz 解压到升级目录;
    • 校验解压后是否包含 tkl_upgrade.sh,没有就报错回滚;
    • 执行 tkl_upgrade.sh 完成主升级;
    • 如果存在 tkl_post_upgrade.sh,再执行清理脚本(删除上传包、清空升级目录)。
  5. 升级过程中 ThinkLink 服务可能重启,页面会短暂不可用。等服务恢复后刷新,查看 P.Ver / DB.Ver 是否变成新版本。

风险提示 ​

  • 升级前务必备份数据库,并确认有回退方案。
  • 升级期间不要断电、不要 kill 进程。
  • 网关上的 TKG 部署在远端时,确保你有 SSH 兜底通道,万一 Web 服务起不来可以从后台干预。
  • 大版本之间的 schema 变更不可逆,跨多个版本升级前先看对应版本的 release notes。

与"网关升级包"的区别 ​

系统升级(本页)网关升级包
升级谁ThinkLink 本体(TKG/TKE/TKC)被纳管的网关设备固件
谁操作admin 在系统平台直接上传admin 上传到系统,租户在自己的"网关管理"页下发

2.00.084–2.00.085 升级说明 ​

基线:后端由 2.00.083 72f15f5 经 2.00.084 ee0a198 到 2.00.085 ec61d78;配套前端由 6050602 经 0a62364 到 da5e848,前端按提交核对,不假定同名版本号。当前是源码和文档契约更新,未部署、未执行目标数据库迁移、未完成真实设备验收。

功能升级后的使用要求
设备在离线通知设备/模板默认关闭,按实际心跳启用;严格超过两倍心跳超时,历史消息按接收时间刷新;关闭保留最后状态
MQTT 状态通知状态变化事件不是报警;API online、属性 _online 和 MQTT data.online 尚未统一
BACnet 属性来源自由字符串来源、属性路径及来源参与唯一键;对象 units 与物模型 unit 区分,默认值不代表检测结果
RPC 搜索及备注名称/标识/缺少标识时的 ID 搜索;多处列表备注显示两行并悬停展开,存储不变

程序与数据库迁移 ​

  1. 按现有发布流程备份程序、数据库与服务配置。构建使用对应锁文件;084 新增 @stevenleep/timewheel,生产包必须包含 work-thread/device-status/index.js 及迁移 SQL。
  2. 从 083 到 085 按顺序执行 084、085 迁移;从 084 到 085 执行 085;更早版本仍需补齐中间迁移。程序版本变化或页面可打开不能证明数据库升级成功。
  3. 084 的 sql/ver-2.00.084/system-01-device-status.sql 为系统级设备表及设备模板表添加默认 "FALSE" 的 notify_offline。
  4. 085 包含 sql/ver-2.00.085/system-01-version.sql 和 sql/ver-2.00.085/tenant-01-bacnet-data-source.sql。后者为各租户 bacnet_object 增加默认 telemetry_data 的 data_from,唯一键扩展为 (eui, data_from, thing_model, field_name)。
  5. 085 租户 SQL 使用无 schema 的 "bacnet_object",依赖升级器逐租户设置 search_path;不要在任意连接默认 schema 下单独执行,也不要替换不存在的 schema 占位符。
  6. 核对目标程序/数据库版本、每个租户列及索引、Worker 启动、BACnet 服务与点表同步、配套前端保存回读。升级不会自动开启全部设备检测或生成全部状态对象。

兼容与目标环境验收 ​

  • 验证新旧设备/模板、旧 Excel 缺列保留、普通新增默认关闭及模板继承;模板重置保留活动时间并重新计算。局部更新不覆盖未读取字段。
  • 验证在线、超时离线、恢复、重复消息不重复通知、关闭再开启、历史消息、Worker 恢复、跨租户同 EUI 隔离;检查缺失心跳和截止恰好相等时的三种状态口径。
  • 验证旧遥测点表、属性路径、不同来源同名字段、未知来源默认值和 0/false;确认 _online 变化到达正确组织 BACnet 点位,区分 Input 拒绝写入与 Output/Value RPC 成功、失败、设备反馈。
  • 浏览器验证开关、来源输入、RPC 搜索和备注展开。分别报告文档/契约已更新、已部署、联调通过,不以源码检查代替实际验收。

随源码验证记录称:084 类型检查、针对性测试和独立 Worker 打包运行通过,但全量测试 424 项中 384 通过、36 失败、4 跳过;085 最终针对性测试 102 项及类型检查通过,含本机 UDP/COV/Worker 等,升级器使用模拟租户。前端仍有 91 项基线类型错误,记录称无新增诊断。这些是上游记录,本轮文档工作没有重跑后端/前端测试;它们不证明全量失败已解决、真实数据库迁移、MQTT/Modbus/BACnet 设备联调、前端浏览器交互或完整生产构建已通过。

2.00.080–2.00.083 升级说明 ​

本节以 tkl-main 2.00.083 和配套 tkl-web 为基线,合并近期使用变化。先确认目标前后端实际版本、数据库迁移及接口能力,再启用功能。

功能操作调整
文件管理资源管理 → 文件管理;普通文件单文件及组织合计均为 50 MiB。替换保留身份及链接,关闭共享使旧公开链接失效。
微应用资源管理 → 微应用,管理权限 1401;最多 10 个应用,每应用 20 MiB。保留应用 ID、配置与业务权限,核对旧角色迁移。
设备编辑分组按需读取,保存差异;新增 3D 配置页签,对象或 null,保存后回读。
位置详情区分本级与本级及子孙级;总览使用最少字段和完整分页。
BACnet参数保存后点击重启;点表修改自动同步,检查运行状态和同步错误。同一后端进程只运行一个组织实例。
组织服务权限SYSADMIN 禁用 Modbus/BACnet 后停止服务并隐藏入口,保留配置与点表;重新允许后需组织手动启动。

管理员和运维检查 ​

  1. 备份并按升级器执行应有迁移;核对外部视图、报表和直连 SQL。六组设备数据已迁至 device_data,2.00.082 的 3D 主表列是过渡结构,2.00.083 最终迁入 device_data;不要跳过必要迁移。
  2. 核对资源管理角色权限(父菜单 1400、微应用 1401、文件管理 1402),验证配额、替换后内容更新、共享关闭与票据到期。
  3. 核对 3D 对象、null、空对象及并发保存回读,位置范围、完整分页和跨组织隔离。保存成功不等于运行时生效、持久化完成或真实设备执行。
  4. 系统 LoRaWAN 网关档案属于 SYSADMIN;释放设为 RELEASE 并禁用,不是物理删除。分别检查 pgResult 和 tkoResult,数据库成功不等于 ThinkOne 同步成功。bigint 使用十进制字符串;保存省略 tenant 可能释放归属,不能当作保留。
  5. 租户删除报错可能发生在业务数据已删、LoRaWAN 释放或运行资源清理阶段。先查各阶段结果,不自动重建或认定全部未执行;文件和 BACnet 实例也需核验。
  6. PG_WORKER 是指定网关名单的临时维护补丁。符合条件时可能清理日志、修复 PostgreSQL 参数并重启 pgsqlDB 容器。增量迁移有历史名单,新安装为空;上线前核对当前名单及维护窗口,不复制历史网关 EUI 或执行结论。MQTT OK 不等于现场参数已生效。

本手册发布不包含业务平台部署、数据库迁移或设备验收。

2.00.077–2.00.079 升级说明 ​

版本功能变化
2.00.077BACnet 点表修改后自动同步至正在运行的服务,无需再点击“应用点表”;支持数值变化通知和可写点位控制。
2.00.077新增 BACnet、Modbus TCP 的组织服务使用权限。关闭权限会停止对应服务并隐藏入口,保留配置和点表;重新允许后需手动启动。
2.00.078为指定维护范围内的网关提供数据库运行修复,增加日志清理并调整数据库资源配置。修复时数据库会短暂重启。
2.00.079支持定制列表、卡片和驾驶舱按需获取设备信息,减少不需要的数据传输;标准设备列表的现有操作方式保持不变。

2.00.071–2.00.073 升级说明 ​

功能变化
场景管理设备按物模型分组绑定;选择物模型后,可分页选择设备并批量绑定或解除绑定。首次从旧版场景结构升级时,旧场景及绑定需重新建立;设备、物模型和遥测数据保留。
微应用同一应用可同时支持 PC 和移动端,也可只选择一种终端;支持按终端筛选。
主应用设置每个租户最多设置一个支持移动端的主应用。设置新主应用时自动取消旧设置,也可关闭全部主应用设置。
对象存储配置升级保留已有系统配置,不再自动写入默认配置。

2.00.070 升级说明 ​

功能变化
位置管理位置按完整路径显示和导入导出,保留原位置编码及设备、网关绑定。列表删除选中位置,树形删除包含下级位置;两种操作都不删除设备或网关。
微应用增加 PC、移动端分类和筛选,原有应用归入 PC。
部门管理增加部门详情查看;支持在定制设备或成员视图中汇总多个部门及其下级部门,同一设备或成员只计一次。标准设备列表的部门筛选方式保持不变。
数据转发改善 MQTT 断线重连后的转发恢复。
设备模板改善通过模板新增及重置设备时的数据一致性,保留过程数据。