Skip to content

Windows 从 v0.7.0 升级到 v0.9.1 后未保留原有数据目录,导致已配置存储消失 #251

Description

@CDeZT

类型: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

复现步骤

  1. 在 Windows 上安装 OpenList Desktop v0.7.0。
  2. 添加并成功初始化一个存储。本次实际使用的是 Thunder 驱动,挂载路径为 /迅雷。
  3. 使用 OpenList Desktop 内置更新功能升级到 v0.9.1。
  4. 重启 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 本身只是读取了这个空目录,所以显示没有存储。

建议修复

  1. 升级时保留并继续使用原有 data_dir。
  2. 当 data_dir 为空时,自动检测旧版安装目录中的历史数据。
  3. 检测到多个候选数据目录时,弹出迁移选择提示。
  4. 迁移前自动备份,并明确显示当前实际使用的数据目录。
  5. 增加 Windows 下 v0.7.0 升级到 v0.9.1 的回归测试,测试数据中至少包含一个已配置存储。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions