-
Data Governance Dev authored
## 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 判定(保持与之前一致)5db40025