Files
Scoreboard/docs/上线检查清单.md
T
AskaEth 005b51b2ec 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。
2026-09-10 09:17:56 +08:00

71 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 上线检查清单
> 比赛当天照着走一遍即可。细节见 [部署指南](./部署指南.md) 与 [使用手册](./使用手册.md)。
## 1. 交付物
| 文件 | 用途 |
| --- | --- |
| `Scoreboard Console-0.1.0-x64.exe` | NSIS 安装包(推荐),双击按向导装 |
| `Scoreboard Console-0.1.0-x64.zip` | 免安装包,解压即用 |
| `scoreboard.exe` | 服务端本体(已内嵌前端页面) |
> 校验完整性:`certutil -hashfile "Scoreboard Console-0.1.0-x64.exe" SHA256`
## 2. 目标机(服务端主机)
- [ ] Windows 10/11 x64,接市电(建议接 UPS)
- [ ] 端口 **19540** 未被占用:`netstat -ano | findstr 19540`
- [ ] 数据目录可写:默认 `%LOCALAPPDATA%\ScoreboardConsole\data`(在安装目录之外,升级/卸载都不会删),需要放行杀毒/防火墙
- [ ] 大屏通过 HDMI 接在**同一台机器**上(系统显示模式设为「扩展」)
- [ ] **安装目录不要选 `C:\Program Files`**(那里普通用户没写权限,日志会写不进去);装到 D 盘等普通目录即可,向导里可以改路径
## 3. 首次启动
- [ ] 双击 `Scoreboard_Console.exe`,启动管理窗口出现
- [ ] 服务端状态变为「运行中 · 就绪」
- [ ] 「运行日志」里 `数据目录:` 指向 `%LOCALAPPDATA%\ScoreboardConsole\data`(**不是**安装目录),且没有「都有数据 / 迁移失败」的警告
- [ ] 打开管理面板(窗口内「打开服务端管理面板」按钮),用管理员账号登录
- [ ] **管理员初始密码**在 `logs\console.log` 里搜 `INITIAL ADMIN CREATED`,密码就在该行上方;也可以直接打开 Console 的「运行日志」面板往上翻。首次登录会要求改密
## 4. 赛事配置(管理员)
- [ ] 「系统设置 → 赛事信息」填名称、副标题、主办方、会标、主题色
- [ ] 「大屏展示」选背景图、标题、轮播间隔
- [ ] **导入规则包**:`rules\2026-驭电利刃杯军事运动会.yaml`(安装目录下的 `rules\` 里)
—— 服务端不会自动加载规则包,必须导入一次
- [ ] 检查计分模板:个人前六名 `10/8/6/3/2/1`、团体 `15/10/8/4/2/1`、最后一名不得分
- [ ] 「只排名不计分」的项目(飞行人员战斗体能)导入后应显示为不计分
## 5. 大屏
- [ ] 接好扩展屏后,服务管理窗口点「重新排布」
- [ ] 确认大屏锁定在「积分榜」页面;需要轮播就在后台开启
- [ ] 鼠标移到大屏上应看不到操作按钮;大屏窗口已开防熄屏
- [ ] 只有一块屏时是窗口化模式,按 **F11** 可切全屏(用于单屏测试)
## 6. 数据与备份
- [ ] 确认数据目录 `%LOCALAPPDATA%\ScoreboardConsole\data` 下的 `backups\` 里已出现 `system-auto-*.db` 与 `event-auto-*.db`(默认每 5 分钟)
- [ ] 开幕前手动点一次「立即备份」
- [ ] 把整个数据目录(不只是 `backups\`:`event_projs\<项目名>\uploads\` 里还有上传的图片)拷一份到 U 盘
## 7. 现场流程演练(建议至少一次)
- [ ] 录入员登录 → 录入一条成绩 → 存草稿 → 发布 → 大屏刷新
- [ ] 撤销发布 → 修改 → 重新发布(历史记录里能看到链路)
- [ ] 断网 → 大屏仍显示缓存数据 → 恢复后自动补增量
- [ ] 重启服务端 → Console 自动拉起
## 8. 出问题时的回退
| 故障 | 动作 |
| --- | --- |
| 服务端无响应 | 服务管理窗口「重启服务」 |
| 主机死机 | 备机启动同一份部署包,把数据目录(`%LOCALAPPDATA%\ScoreboardConsole\data`)拷回去 |
| 数据库损坏 | 停机,用数据目录下 `backups\` 的最新备份替换 `event_projs\<项目名>\event.db`(先删 `-wal`/`-shm`),详见部署指南第 8.3 节 |
| 大屏黑屏 | 服务管理窗口「重新排布」;仍不行就用备用笔记本开同一地址 |
| 覆盖安装后数据不见了 | 看「运行日志」里的 `数据目录:` 与迁移警告,按部署指南第 9.9 节处理 |
> 完整恢复步骤见 [部署指南 · 备份与恢复](./部署指南.md#8-备份与恢复)。