升级与迁移
升级前先在 Tower 的数据管理中创建完整备份,并另外保留 ~/.tower 的离线副本。数据库 schema 向前迁移,不承诺旧版本可以继续写入升级后的数据库;降级时应恢复升级前备份。
启动时发生什么
Tower 启动时解析 TOWER_DATA_DIR,检查 Prisma schema,然后按文件编号执行尚未记录在 AppliedMigration 表中的迁移。每项迁移成功后才记账;失败时停止后续迁移,下次启动从失败项重试。
迁移不会自动删除 API Key、CLI 凭据、Provider 配置或 Assistant 历史。旧配置在能够唯一映射时继续兼容;无法安全映射的连接会保留并显示诊断,而不是猜测目标。
备份包含什么
| 数据 | 完整备份 |
|---|---|
| SQLite 数据库、项目事实、任务、配置 | 包含 |
| API Key、自定义敏感 header/query | 包含,按密钥材料保护备份 |
| 项目资产与 Assistant 会话 | 包含 |
| CLI Provider registry、安装目录与配置 | 包含 |
| Assistant 临时附件缓存 | 不保证;长期文件应保存为项目资产 |
| CLI 自身登录、token、用户仓库与 Git worktree | 不包含 |
安全升级流程
- 停止正在运行的 Tower 与无人值守服务。
- 创建完整备份,并记录当前版本与数据目录。
- 安装目标版本后启动 Tower,等待迁移完成。
- 检查工作区、项目、Assistant、AI Tools 连接和正在进行的任务。
- 验证无误后再恢复无人值守服务。
如果迁移失败,不要反复用不同版本写同一数据库。保留日志与备份,修复原因后重试;必须降级时,移走升级后的数据目录并恢复旧版本对应的备份。
