Skip to content

v3.1.3

Choose a tag to compare

@mr-mihu mr-mihu released this 29 Aug 08:13
· 2 commits to main since this release

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_UNREACHABLE isError。
  • 隔离实例冷启动(tarball 安装 + 注入宕机环境):dbhub 服务已加载(6 个工具),生成的 toml 每源含 lazy = true
  • npm run check + 全部单元测试通过。