v3.1.3
v3.1.3
多环境故障隔离:一个环境的数据库连不上,不再拖垮整个插件。
修复
- 常驻服务多源启动崩溃(3.1.2 事故):dbhub 对启动时登记的源是串行即连、一源拒连整进程 Fatal 退出——配置了第二个环境(如测试库
ECONNREFUSED)后,连正常环境的工具也全部不可用,报错表现为dbhub exited (code 1) … Fatal error: connect ECONNREFUSED <host>:<port>。现在生成的dbhub.toml每个源带lazy = true(dbhub ≥1.2 原生懒连接,老版本会忽略该字段、行为不变):启动只登记不连库,execute_sql_<id>等工具照常注册;不可达的环境仅在该环境自己的查询上返回SOURCE_UNREACHABLE连接错误,其余环境与常驻服务不受影响。 - 连接失败的结果现在也附带目标环境标签(主机/端口/库,密码打码),首次懒连失败时能一眼看清是哪个环境不可达。
变化
dbhub_execute_sql/dbhub_list_sources描述与文案注明:连接按环境懒建立,列出的 source 不代表数据库当前可达(卡片 🟢 仅代表服务在线)。- 状态卡片「运行中」语义更明确:服务在线 ≠ 每个环境可达,以查询实际返回为准。
安装与更新
# 安装
dsh plugin --profile web add dsh-dbhub-live
# 更新(写明当前发布的版本号)
dsh plugin --profile web update dsh-dbhub-live@3.1.3更新后重启 dsh web 生效。
验证
- 真实 dbhub 1.2.1 协议级 A/B:旧 toml(eager)精确复现启动 Fatal 退出;新 toml(lazy)下存活源在宕机源调用前后均正常应答,宕机源返回
SOURCE_UNREACHABLEisError。 - 隔离实例冷启动(tarball 安装 + 注入宕机环境):
dbhub 服务已加载(6 个工具),生成的 toml 每源含lazy = true。 npm run check+ 全部单元测试通过。