feat(web): 数据库类型切换自动套用预设 + 杀 8765 脚本
## db_defaults 三套化
用户反馈:「@db_defaults.yaml 现在这个文件里面由三套数据库配置,
现在页面要改成切换数据库类型同时也要切换默认IP,端口,账户密码和数据库」
### 改动
- web/configs/db_defaults.yaml —— 旧单 dict → 新三键 dict
(mysql / dameng / oracle 各一套,含 port 字段;文件已在 .gitignore 安全)
- web/api/routes.py /api/db-defaults —— 返回三套 JSON;
兼容旧格式单 dict(用 _flat 包裹,前端识别后只填 mysql)
- web/static/index.html —— 加 dbDefaults ref + DB_FALLBACK_PRESETS 兜底
+ _applyPreset(t);onDbTypeChange 之前只切 port(保留用户自定义),
现在无条件套用预设全部 6 个字段(host/port/user/password/database/oracle_client_dir);
loadDbDefaults 先缓存三套再按当前 db_type 套用
## scripts/kill_web.{sh,bat}
杀掉 web 服务(默认端口 8765,可自定义):
- kill_web.sh —— Git Bash + Linux/macOS 通用(netstat.exe / lsof 自动分支)
- kill_web.bat —— Windows 原生 cmd 兼容
退出码:
0 杀掉占用进程成功 / 端口空闲
1 端口已空闲(无需处理)
2 杀进程失败
## 验证
- curl /api/db-defaults 返回三套预设(端口 3306/5236/1521)✓
- kill_web.sh 空闲端口返 1 / 占用端口返 0(实测杀 18999 PID 23160)✓
- 静态资源 200 ✓
- JS 结构平衡 ✓
## 踩坑
- API 旧格式兼容:YAML 老结构(单 dict 平铺)→ 检测 value 不是 dict 时用 _flat 包裹
- oracle_client_dir 仅 Oracle 有效,三套配置统一保留 key 占位
- password 空串语义:'password' in preset 判定(保持与之前一致)
Showing
scripts/kill_web.bat
0 → 100644
scripts/kill_web.sh
0 → 100644
Please register or sign in to comment