类型:Bug
问题概述
在 Windows 上通过 OpenList Desktop 内置更新,从 v0.7.0 升级到 v0.9.1 后,程序没有继续使用旧版的数据目录,而是创建并使用了一个新的空数据目录。
结果是:原本已经成功配置并正常工作的存储在新版界面中消失。
环境
- 操作系统:Windows 11 Pro for Workstations,64 位,构建号 28000
- 升级前 OpenList Desktop:v0.7.0
- 升级后 OpenList Desktop:v0.9.1
- 升级前 OpenList Core:v4.1.1
- 升级后 OpenList Core:v4.2.4
复现步骤
- 在 Windows 上安装 OpenList Desktop v0.7.0。
- 添加并成功初始化一个存储。本次实际使用的是 Thunder 驱动,挂载路径为 /迅雷。
- 使用 OpenList Desktop 内置更新功能升级到 v0.9.1。
- 重启 OpenList Desktop,打开存储管理页面。
预期行为
升级后应继续使用原有数据目录,或自动执行安全迁移:
- 保留已有存储配置;
- 保留用户和其他设置;
- 迁移前创建备份;
- 如果检测到多个数据目录,应提示用户选择,而不是静默创建空数据库。
实际行为
旧数据仍然保留在旧版安装目录:
C:\Program Files (x86)\OpenList Desktop\data
但升级后的程序创建并使用了新的目录:
%APPDATA%\OpenList Desktop\data
数据库对比结果:
- 旧数据库的 x_storages 表中有 1 条记录;
- 记录为 /迅雷,驱动为 Thunder,状态为 work;
- 新数据库的 x_storages 表中记录数为 0。
新版 Core 日志中出现:
config file not exists, creating default config file
failed list /: storage not found; please add a storage first
内置更新日志显示:
current=0.7.0, latest=v0.9.1, has_update=true
Installing update: OpenList-Desktop_0.9.1_x64-setup.exe
HTTP 端口升级前后均为 5244,因此问题不是端口改变导致的。
根因判断
初步判断是 OpenList Desktop 升级或安装流程没有正确迁移、识别旧版数据目录,导致新版 OpenList Core 被指向了一个新的空数据目录。
OpenList Core 本身只是读取了这个空目录,所以显示没有存储。
建议修复
- 升级时保留并继续使用原有 data_dir。
- 当 data_dir 为空时,自动检测旧版安装目录中的历史数据。
- 检测到多个候选数据目录时,弹出迁移选择提示。
- 迁移前自动备份,并明确显示当前实际使用的数据目录。
- 增加 Windows 下 v0.7.0 升级到 v0.9.1 的回归测试,测试数据中至少包含一个已配置存储。
问题概述
在 Windows 上通过 OpenList Desktop 内置更新,从 v0.7.0 升级到 v0.9.1 后,程序没有继续使用旧版的数据目录,而是创建并使用了一个新的空数据目录。
结果是:原本已经成功配置并正常工作的存储在新版界面中消失。
环境
复现步骤
预期行为
升级后应继续使用原有数据目录,或自动执行安全迁移:
实际行为
旧数据仍然保留在旧版安装目录:
但升级后的程序创建并使用了新的目录:
数据库对比结果:
新版 Core 日志中出现:
内置更新日志显示:
HTTP 端口升级前后均为 5244,因此问题不是端口改变导致的。
根因判断
初步判断是 OpenList Desktop 升级或安装流程没有正确迁移、识别旧版数据目录,导致新版 OpenList Core 被指向了一个新的空数据目录。
OpenList Core 本身只是读取了这个空目录,所以显示没有存储。
建议修复