fix: 数据目录移出安装目录,修掉「覆盖安装/卸载即丢数据」
根因:数据目录是 <安装目录>\data(config.yaml 的 dataDir 相对服务端工作目录),
而 electron-builder 的卸载器结尾执行 RMDir /r $INSTDIR,且覆盖安装会先跑旧卸载器
(installSection.nsh:52 的 uninstallOldVersion)→ 赛事库/规则/用户/审计/上传图片
连同安装目录被整个删除,再装新版。卸载一次同样如此。
- 服务端新增 -data <dir>(主命令、backup、passwd 三处),非空时覆盖 config.yaml 的
dataDir;不传时行为完全不变(兼容便携/手工运行)
- Console 把数据指到当前用户目录 %LOCALAPPDATA%\ScoreboardConsole\data(卸载器不会碰
这里;没有用 app.getPath('userData'),因为 %APPDATA%\<AppName> 正是被删的那个)
- 一次性迁移:目标为空且 <安装目录>\data 有数据时整体改名过去;两边都有数据时不动作
只记警告;任何失败都保留原地数据、绝不删除
- passwd 也带 -data(否则重置的是安装目录下那个空库里的账号)
- deploy/backup.bat 指向同一数据目录
- 文档:部署指南新增「数据放在哪里(升级/卸载都不会删)」+ 备份/恢复/迁移路径改写,
上线检查清单与使用手册同步
自检:服务端 12 包全绿;console 语法 14 文件 + datadir 单测 11/11;backup.bat 保持纯 ASCII。
This commit is contained in:
1 parent
6483acf9ad
commit
005b51b2ec
18 files changed
+626
-64
No files matched your search
+8
-6
@@ -16,14 +16,15 @@
|
||||
|
||||
- [ ] Windows 10/11 x64,接市电(建议接 UPS)
|
||||
- [ ] 端口 **19540** 未被占用:`netstat -ano | findstr 19540`
|
||||
- [ ] 数据目录可写:默认 `<安装目录>\data\`,需要放行杀毒/防火墙
|
||||
- [ ] 数据目录可写:默认 `%LOCALAPPDATA%\ScoreboardConsole\data`(在安装目录之外,升级/卸载都不会删),需要放行杀毒/防火墙
|
||||
- [ ] 大屏通过 HDMI 接在**同一台机器**上(系统显示模式设为「扩展」)
|
||||
- [ ] **安装目录不要选 `C:\Program Files`**(那里普通用户没写权限,数据库会写不进去);装到 D 盘等普通目录即可,向导里可以改路径
|
||||
- [ ] **安装目录不要选 `C:\Program Files`**(那里普通用户没写权限,日志会写不进去);装到 D 盘等普通目录即可,向导里可以改路径
|
||||
|
||||
## 3. 首次启动
|
||||
|
||||
- [ ] 双击 `Scoreboard_Console.exe`,启动管理窗口出现
|
||||
- [ ] 服务端状态变为「运行中 · 就绪」
|
||||
- [ ] 「运行日志」里 `数据目录:` 指向 `%LOCALAPPDATA%\ScoreboardConsole\data`(**不是**安装目录),且没有「都有数据 / 迁移失败」的警告
|
||||
- [ ] 打开管理面板(窗口内「打开服务端管理面板」按钮),用管理员账号登录
|
||||
- [ ] **管理员初始密码**在 `logs\console.log` 里搜 `INITIAL ADMIN CREATED`,密码就在该行上方;也可以直接打开 Console 的「运行日志」面板往上翻。首次登录会要求改密
|
||||
|
||||
@@ -45,9 +46,9 @@
|
||||
|
||||
## 6. 数据与备份
|
||||
|
||||
- [ ] 确认 `data\backups\` 里已出现 `system-auto-*.db` 与 `event-auto-*.db`(默认每 5 分钟)
|
||||
- [ ] 确认数据目录 `%LOCALAPPDATA%\ScoreboardConsole\data` 下的 `backups\` 里已出现 `system-auto-*.db` 与 `event-auto-*.db`(默认每 5 分钟)
|
||||
- [ ] 开幕前手动点一次「立即备份」
|
||||
- [ ] 记下备份目录位置,必要时整个目录拷到 U 盘
|
||||
- [ ] 把整个数据目录(不只是 `backups\`:`event_projs\<项目名>\uploads\` 里还有上传的图片)拷一份到 U 盘
|
||||
|
||||
## 7. 现场流程演练(建议至少一次)
|
||||
|
||||
@@ -61,8 +62,9 @@
|
||||
| 故障 | 动作 |
|
||||
| --- | --- |
|
||||
| 服务端无响应 | 服务管理窗口「重启服务」 |
|
||||
| 主机死机 | 备机启动同一份部署包,拷回 `data\` 最近备份 |
|
||||
| 数据库损坏 | 停机,用 `data\backups\` 最新备份替换 `data\event_projs\<项目名>\event.db`(先删 `-wal`/`-shm`) |
|
||||
| 主机死机 | 备机启动同一份部署包,把数据目录(`%LOCALAPPDATA%\ScoreboardConsole\data`)拷回去 |
|
||||
| 数据库损坏 | 停机,用数据目录下 `backups\` 的最新备份替换 `event_projs\<项目名>\event.db`(先删 `-wal`/`-shm`),详见部署指南第 8.3 节 |
|
||||
| 大屏黑屏 | 服务管理窗口「重新排布」;仍不行就用备用笔记本开同一地址 |
|
||||
| 覆盖安装后数据不见了 | 看「运行日志」里的 `数据目录:` 与迁移警告,按部署指南第 9.9 节处理 |
|
||||
|
||||
> 完整恢复步骤见 [部署指南 · 备份与恢复](./部署指南.md#8-备份与恢复)。
|
||||
Reference in new issue
Block a user