人工智能大模型AI 应用交互助手本地部署【免费下载链接】cherry-studio Cherry Studio 是一款支持多个 LLM 提供商的桌面客户端项目地址https://gitcode.com/CherryHQ/cherry-studio点击查看免费下载本篇技术指南围绕 Cherry Studio 数据迁移体系中的一条关键升级策略展开V1.9.13 用户现在可以跳过 V2.0.0、直接安装任意 V2.0.x 补丁版本完成 v1→v2 迁移而 V2.1.0 及之后的版本仍必须首先经过 V2.0.x 迁移线。文章将完整解释该变更的内容、底层版本门禁实现、测试验证方式以及发布管理者需要配合的动作帮助用户、测试人员与发布工程师准确理解这条升级路径的边界与原理。变更概述V2.0.x 全系列成为合法迁移目标本变更记录于 v1 直升 V2.0.x 变更文档核心结论是从 V1.9.13 升级的每一位用户现在可以把任意一个 V2.0.x 补丁版本作为首个 v2 迁移目标first v2 migration target而不必先安装 V2.0.0。其背后的含义是每个 V2.0.x 补丁都完整保留 v1→v2 的一次性迁移逻辑不会因为补丁迭代而丢失迁移能力V2.0.x 补丁可能包含对迁移崩溃、内存压力、Agent 数据路径、遗留 Provider 凭证等问题的修复因此用户可以直接安装最新的 V2.0.x 补丁一次性获得迁移能力 全部补丁修复无需在 V2.0.0 与最新补丁之间走两步。同时存在一条明确的上限约束从 V2.1.0 开始后续版本不再接受 V1.x 用户作为首个迁移目标用户必须先进入 V2.0.x 迁移线完成数据迁移再升级到更高版本。背景为什么 v1→v2 需要一次性迁移与版本门禁Cherry Studio v2.0.0 引入了从旧版存储Redux Persist Dexie到 SQLite 新架构的一次性数据迁移。整个迁移系统实现在 src/main/data/migration/v2相关架构说明见 V2 迁移指南。为了保证数据完整性迁移系统强制一条线性升级路径v1.old → v1.last (≥1.9.12) → v2.0.x → v2.1采用线性路径的根本原因是工程代价如果允许从任意 v1 版本直接迁移迁移代码需要面对 O(n²) 的源数据格式组合测试矩阵。通过要求所有用户先升级到最终 v1 版本≥ 1.9.12迁移代码只需处理单一源数据格式大幅降低测试与维护成本。该线性路径同时由两层机制独立强制托管发布服务managed release service客户端通过 AppUpdaterService 上报安装版本与客户端元数据由服务端选择 OTA 升级目标并强制升级网关见 应用更新架构本地迁移门禁migration gate对绕过自动更新、手动下载安装的场景v2MigrationGate在创建迁移窗口前用 versionPolicy.ts 校验升级路径作为独立的安全网。底层实现版本策略的拦截规则本地迁移门禁的核心逻辑位于 src/main/data/migration/v2/core/versionPolicy.ts其中定义了三个版本常量常量值含义V1_REQUIRED_VERSION1.9.12v1→v2 迁移要求的最低 v1 版本V2_GATEWAY_VERSION2.0.0v2.0.x 迁移网关线中的首个版本V2_DIRECT_MIGRATION_CEILING2.1.0不允许作为 v1→v2 首个迁移目标的首个版本纯函数checkUpgradePathCompatibility负责判定升级路径是否兼容规则如下规则条件拦截原因no_version_log存在旧数据但缺少version.log用户从未运行过内嵌 VersionServicev1.7 起内嵌的 v1 版本v1_too_oldpreviousVersion 1.9.12数据不是最终 v1 形态v2_gateway_skippedpreviousVersion 2.0.0且currentVersion ≥ 2.1.0跳过了 v2.0.x 迁移线其中v2_gateway_skipped规则与本变更直接对应V1.9.13 升级到任意 2.0.x 版本都不触发该拦截因为当前版本 2.1.0而 V1.9.13 → 2.1.0 则会被拦截提示用户先安装 2.0.x。预发布版本的处理策略对预发布版本做了特殊处理源码注释明确了以下约定currentVersion通过semver.coerce()去除预发布标签2.0.0-alpha被视作2.0.0因此v1.last → v2.0.0-alpha 允许通过不会误拦安装预发布版的 v1 用户previousVersion不做 coerce2.0.0-beta被视为2.0.0 之前说明用户尚未通过迁移网关预发布之间的升级alpha → beta → rc → 2.0.0允许因为首次成功后迁移状态已为completed。version.log 的读取细节版本检查读取MigrationPaths.versionLogFile经resolveMigrationPaths()解析、已考虑 v1 自定义 userData 目录的路径而不是VersionService的缓存路径。这对配置过自定义用户数据目录的 v1 用户至关重要——迁移系统所有路径都必须来自MigrationPaths严禁直接调用app.getPath(userData)详见 迁移系统 README 的 Path Safety 章节。version.log使用version|os|environment|packaged|mode|timestamp的管道分隔格式readPreviousVersion从文件末尾向前扫描返回与当前版本不同的最近一个版本损坏行会被静默跳过并输出警告日志。测试验证测试用例如何锁定这条升级路径策略的行为由 versionPolicy.test.ts 中的 12 个用例逐条锁定其中与本变更直接相关的用例包括#7「passes when v1.9.13 upgrades directly to v2.0.1」previousVersion: 1.9.13、currentAppVersion: 2.0.1判定为pass—— 这正是本变更声明所允许的场景#8「passes for later v2.0.x patch releases」v1.9.13 → 2.0.99同样pass—— 证明任意 v2.0.x 补丁都是合法目标而非仅限 v2.0.1#6「blocks when v2 gateway is skipped (1.9.12 → 2.1.0)」判定为v2_gateway_skipped返回提示gatewayVersion: 2.0.x—— 证明 2.1.0 及以上仍被拦截#10「blocks when previous is 2.0.0-beta」2.0.0-beta → 2.1.0判定为v2_gateway_skipped—— 预发布版本不能充当迁移网关#5「passes when current version is a pre-release coerced to 2.0.0」v1.9.12 → 2.0.0-alpha允许通过。这些用例同时验证了readPreviousVersion对多版本文件、空文件、损坏行、文件不存在等边界场景的处理可作为理解版本门禁行为的最小可执行示例。用户需要做什么什么都不用做对于从 V1.9.13 升级的用户本变更完全自动生效无需任何手动操作当托管发布服务将 V1.9.13 客户端的升级目标指向最新 V2.0.x 补丁如 V2.0.1时本地迁移门禁会放行该路径用户安装该 V2.0.x 补丁后即进入既有的一次性迁移流程迁移完成后数据进入 SQLite 新架构用户获得的不仅是最新补丁修复还包括该补丁内携带的全部迁移相关修复迁移崩溃、内存压力、Agent 数据路径、遗留 Provider 凭证等。需要注意的是迁移是一次性动作且各迁移步骤独立提交。如果迁移中途失败后选择跳过迁移Use V2 without importing V1 data系统会先清空本次运行已写入新库的数据再以默认数据启动 v2详见 跳过迁移会清除已迁移数据。因此若迁移结果不理想仍可借助 v1 迁移可重跑 机制保留的 v1 Redux 数据存在时在 设置 数据 中可重跑迁移重新迁移迁移失败时也可在失败界面保存本地诊断 ZIP 用于排查见 迁移诊断包。发布管理者注意事项本变更属于数据迁移策略调整发布管理者需要额外关注两点托管发布服务网关需单独更新本地迁移门禁只是安全网决定 V1.9.13 客户端实际升级目标的是托管发布服务端。截至本变更记录撰写时生产环境仍将 V1.9.13 客户端路由到 V2.0.0要真正让用户直接获得最新 V2.0.x 补丁必须先在发布服务网关侧完成配置更新2.1.0 及以后的发布任何 2.1.0 之后的版本都必须确保用户先经过 2.0.x 迁移线发布服务与本地门禁需要保持一致避免本地门禁放行但服务端路由错误或反向的不一致。整个变更目录的存放约定与索引见 V2 Breaking Changes 总览同类迁移类变更如重跑迁移、跳过迁移清理、迁移诊断包均按YYYY-MM-DD-short-description.md命名规范收录。小结与判定速查表升级路径结果依据V1.9.13 → V2.0.1任意 2.0.x 补丁通过变更文档 测试 #7/#8V1.9.13 → V2.0.99通过测试 #8V1.9.13 → V2.1.0拦截v2_gateway_skipped测试 #6提示先装 2.0.xV2.0.0 → V2.1.0通过测试 #9v2 内部升级V2.0.0-beta → V2.1.0拦截v2_gateway_skipped测试 #10总而言之本次变更为 V1.9.13 用户打通了一条一步到位的 v2 迁移通道任意 V2.0.x 补丁版本都是合法且推荐的首个迁移目标其正确性由 versionPolicy.ts 的实现与配套测试共同保证而 V2.1.0 作为迁移天花板继续守护着必须先经过 v2.0.x 迁移线的线性路径铁律。赞分享人工智能大模型AI 应用交互助手本地部署【免费下载链接】cherry-studio Cherry Studio 是一款支持多个 LLM 提供商的桌面客户端项目地址https://gitcode.com/CherryHQ/cherry-studio点击查看免费下载相关推荐CherryHQ/cherry-studio数据迁移数据库升级策略CherryHQ/cherry studio数据迁移数据库升级策略 ? 概述 在桌面应用开发中数据迁移和数据库升级是确保用户数据安全、应用稳定运行的关键环节人工智能大模型AI 应用交互助手本地部署Cherry Studio BootConfigMigrator 源码级解析v1 启动配置向 boot-config.json 的迁移机制Cherry Studio BootConfigMigrator 源码级解析v1 启动配置向 boot config.json 的迁移机制 BootConfi人工智能大模型AI 应用交互助手本地部署MoviePy v2.0 升级指南重大变更与迁移策略MoviePy v2.0 升级指南重大变更与迁移策略 前言 MoviePy 作为一款优秀的视频编辑库在 v2.0 版本中进行了重大架构调整。本文将从技术角度音视频视频处理音频处理上一篇终极指南如何快速部署和使用Gemma 4 E2B多模态AI模型4位量化版下一篇PyPTO-Gym 模式验证记录validation-records全解读Ascend950PR_9579 上六类 PyPTO-Pro 数据流的保留证据与适用范围创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考