Kikoeru 版本升级与数据备份:不丢收藏、不丢进度的正确做法
升级前必做:备份 sqlite 目录
SQLite 数据库是唯一必须备份的东西——所有索引、收藏、评语、进度、设置都在里面。封面和配置文件可以重下/重写。
# Docker 方式:直接 cp 出来
cp -r /opt/kikoeru/sqlite /opt/kikoeru/sqlite.backup.$(date +%Y%m%d)
# Windows 方式:整个 sqlite 文件夹复制一份即可
# npm 方式:找到你的运行目录下的 sqlite/ 备份
三种部署的升级步骤
Docker
cd /opt/kikoeru # 你的部署目录
cp -r sqlite sqlite.backup.$(date +%Y%m%d) # 先备份
docker compose pull # 拉新镜像
docker compose up -d # 重启容器
数据卷(sqlite、covers、config、音声库)都是目录挂载,升级不会动它们。
Windows exe
- 先备份 sqlite\ 和 config\ 目录
- 下载新版本 exe,覆盖旧的(dist/ 目录如果没变就不动)
- 启动新版本
npm 方式类似:git pull + npm install + 启动前备份。
升级后验证清单
- [ ] 容器/进程正常启动,控制台没有报错
- [ ] Web 界面能打开
- [ ] 作品数量和升级前一致(如果少了很多,可能是扫描触发了清理)
- [ ] 自己的星标作品还在
- [ ] 随便点一个作品,封面能显示、标签齐全
- [ ] 手机客户端能正常连接
如果升级后出问题
数据库迁移失败
SQLite 结构可能有 breaking change。先看启动日志有没有 migration 相关的错误,如果有:
- 停服务
- 把备份的 sqlite.backup 恢复回来
- 查一下新版本 release note 看有没有特殊的升级步骤
- 如果是小版本升级(比如 0.6.14 → 0.6.16)通常不会有大问题
数据丢失
如果作品数量明显减少:
- 检查 Web 界面里的根文件夹列表——是不是某个根文件夹被意外删除了
- 如果根文件夹都在,可能是新版触发了自动清理(删除了文件已不存在的数据库条目)
- 恢复 sqlite 备份,重新跑一次扫描
封面全部丢失
封面缓存可以重下——进 Web 界面点"重新下载封面"或"刷新元数据",让 Kikoeru 重新从 DLSite 抓。
日常备份建议
- 每次升级前必须备份 sqlite/
- 平时每周定期备份一次(SQLite 文件很小,通常几 MB 到几十 MB)
- 如果收藏、评语、进度对你很重要,sqlite/ 就是生命线