跳到主要内容

升级、备份与兼容

版本​

Hub 和客户端各有自己的版本号。每个版本的发布说明会写明它需要的 Hub 版本。

  • 已发布的版本不会修改,修复以新版本的形式发布。
  • 管理端显示 Hub 的版本号和对应的提交。提交不是版本号。

升级顺序​

  1. 查看发布说明里 API、数据库和更新协议的变化。
  2. 如果新客户端依赖新 Hub,先升级并检查 Hub,再升级客户端。
  3. 如果两者兼容且 Hub 运行正常,可以分别升级。

升级客户端会保留它的服务地址,以及每个 Hub 对应的设备身份、登录状态和本机数据。

升级 Hub 之前​

  1. 停止派发新工作,等正在运行的任务结束。
  2. 在同一时间点备份数据库和全部文件存储。数据库和资料库必须一起恢复。
  3. 备份私有配置,并记下当前的源码版本。

仓库里提供了 hub-backend/full_backup.py(完整加密备份)和 hub-backend/db_admin.py(数据库检查与恢复)。在生产环境依赖某个备份之前,先实际演练一次恢复。

升级​

安装方式步骤
源码启动器停止,更新源码,运行与之前相同的 python start.py 命令
Dockerpython ops/self-host/deploy.py stop,切换到新版本的源码,python ops/self-host/deploy.py up
自行部署停止 Hub,部署新版本,以 DB_MIGRATION_MODE=auto 启动

启动时会执行版本化迁移。迁移失败时,Hub 不会显示为健康。不要对同一个数据库同时运行两个迁移。

回退​

同时恢复匹配版本的源码、数据库、文件存储和密钥。旧版本的 Hub 不能使用已被新版本迁移过的数据库。

客户端更新​

客户端从它连接的 Hub 检查新版本。用于更新的安装包使用 Ed25519 密钥签名;Hub 的 CLIENT_UPDATE_PUBLIC_KEYS 配置项列出客户端信任的公钥。签名私钥不要放在 Hub 上,也不要放进仓库。

编辑此页