前言¶
DeepSeek Harness (DSH) 提供了一个 Web GUI 环境用于智能体开发与调试。在处理数据时,开发者往往需要在 DSH 界面与数据库客户端之间切换,这会打断工作流。dsh-database-manager 插件在 DSH 侧边栏增加了一个「数据库管理」入口,提供统一的数据源配置与独立面板,支持在同一个界面里查数据、改结构、跑 SQL、翻 Redis 键值。
核心功能¶
统一数据源管理¶
插件在侧边栏提供一个独立的「数据库管理」入口。数据源列表支持搜索(名称/主机/标签)、分组显示(按类型/分组/标签)以及标签管理。每个数据源独立配置,支持运行时测试连接(含连通性、延迟与服务端版本)、编辑与删除。
MySQL / SQLite 面板¶
进入数据库后,左侧显示库/表树,右侧提供六个标签页:
- 浏览:支持分页、跳页、按列/索引排序。列注释显示在列名下方,表注释显示在分页行右侧。支持双击单元格就地编辑、行编辑/复制/删除、多选批量删除。执行 SQL 查询后结果集也在此页渲染。
- 结构:支持新增/修改/删除列、管理索引、主键与唯一约束。列注释支持鼠标悬停查看全文。
- SQL:支持库级 SQL 执行(一个整页编辑器,无需
USE语句),支持 Ctrl+Enter 执行。 - 搜索:依例查询(QBE),每列一行,填值的行参与 AND 条件匹配。
- 插入:按列类型生成控件,支持生成多行并整批提交。支持区分「留空」(使用 DEFAULT)、NULL 和空字符串。
- 操作:包含移动表、表选项、复制表、表维护、删除数据或表。
库级 SQL:在表列表页顶部提供库操作行,包含导出整库、导入到本库、重命名、复制数据库、字符集设置、删除数据库以及新建表。多表多库时,列表先出名字,行数与大小随后补齐。
Redis 面板¶
左侧显示目录树(按 : 分层折叠,显示每个目录下的键数),顶部过滤框支持在已展开层内匹配键名。右侧包含:
- 值:按类型渲染并可编辑(支持 string/list/set/hash/zset),支持 TTL 管理。Stream 类型仅读。
- 服务信息:显示版本、内存、连接数、各库键数。
- 命令行:支持对当前选中库执行任意命令。
导入导出与兼容性¶
- 导入导出:支持 SQL 转储(结构/数据/DROP 可选,整库或单表)与 CSV 导出。导出完成后会显示文件名与大小,并提供「再次导出」按钮。
- 引擎兼容:MySQL 面板会按服务端能力取数据,不假定最新版(兼容 5.5+),探测服务端是否支持
GENERATION_EXPRESSION字段以适配不同版本。SQLite 面板依赖 Node 内置驱动,零依赖。引擎不支持的功能会在界面禁用并写明原因。
大库可用性¶
针对千万级 keyspace 的 Redis 库,插件采用按层加载 + 大库一次性建索引的策略:
- 小库 (< 100 万键):逐层扫描,点开目录才扫该前缀,同时得出子目录与精确键数。
- 大库 (≥ 100 万键):遍历一次、建全树并缓存。利用 Lua 脚本在服务端折叠键名,减少网络传输开销。直接开始建索引,顶部有真实进度条,不做前置确认框。
- 数据准确性:索引为完整遍历而非采样,不留漏目录。目录与计数准确,超过上限会报错而非静默丢弃。
安装与启用¶
安装命令原文缺失(资料截断)。
典型用法¶
在同一个界面里查数据、改结构、跑 SQL、翻 Redis 键值。
- MySQL / SQLite 面板:包含浏览、结构、SQL、搜索、插入、操作六个标签页。库级 SQL 在表列表页顶部操作行提供。
- Redis 面板:包含目录树、值、服务信息、命令行四个功能区。
适用场景与注意¶
- 权限与安全:插件以当前 DSH 进程权限运行。提供的 agent 工具受写保护闸门约束,涉及写操作需注意审批策略。
- 引擎限制:大表上的危险操作(如 SQLite 改类型、删列)在执行前会说明代价。
- 兼容性:MySQL 面板兼容旧版本,SQLite 面板零依赖。
短结尾¶
dsh-database-manager 通过侧边栏面板与受保护的 agent 工具,将 SQLite、MySQL、Redis 的管理能力集成到了 DSH Web 界面中。它不仅提供了完整的浏览、编辑与 SQL 执行能力,还特别优化了对大库与旧版 MySQL 的兼容性。