dsh-ide-database

devtested: passnpmMIT

JetBrains Database-style data source tree and SQL/Redis consoles with 15 agent tools for DeepSeek Harness. SQL needs Java 8+ installed, Redis does not.

下载量 / Downloads
1,291
依赖体积 / node_modules
2.77 MB
测试时间 / Tested
2026-11-06
DSH 版本 / Version
0.2.2-rc.1

Install

dsh plugin --profile web add dsh-ide-database

Sandbox test results

StageResult
1 install✓
2 list✓
3 mount✓
4 boot—

Four stages run in an isolated sandbox: install (network on) → list → mount → boot (last three with no network).

README

dsh-ide-database

DeepSeek Harness(DSH)的 JetBrains Database 风格数据源插件:右侧边栏的数据库工具窗,以及一组供 Agent 查询/操作数据库的工具。

支持 MySQL、MariaDB、PostgreSQL、SQLite、SQL Server、Oracle、Redis、达梦 DM、OceanBase(MySQL / Oracle 两种模式),也可以配置任意自定义 JDBC 驱动。

功能

  • 右侧边栏入口:在右侧边栏的「+」新标签页菜单里选择「数据库」,或在 Guide 页点击「数据库」胶囊;标签页会保持挂载,切换会话不丢状态;重新打开面板时会回到上次选中的数据源(连接被删掉则回到第一个)。
  • 预设数据源:MySQL、MariaDB、PostgreSQL、SQLite、SQL Server、OceanBase(MySQL / Oracle 模式)、Oracle、达梦 DM、Redis,新建连接时自动带出默认端口、驱动类和 URL 模板(MariaDB 走 MySQL 方言;SQLite 直接填数据库文件路径(新建时这项必填;表单里会隐藏主机、端口和账号密码,只留名称与路径,路径不存在时测试连接会提示将新建空库);SQL Server 用 mssql-jdbc 的 jre8 构建)。
  • 自定义驱动:填写驱动名、方言、驱动类、URL 模板和 Maven 坐标(可多个 jar),点击下载即可从 Maven Central / 阿里云镜像拉取并缓存,无需手动放置 jar。
  • 数据浏览:仿 JetBrains Database 工具窗口——工具栏「新增 / 刷新 / 删除 / 控制台 / 回收站 / 设置」左对齐(按钮顺序可在「设置 → 数据源工具栏」里上移 / 下移调整,也可以一键恢复默认,顺序存在本机配置里、重开面板仍然生效;窗口太窄放不下时,末尾的按钮会收进「⋯」菜单,菜单项同样带图标、文字与禁用态),下方是所有数据源 → Schema → 表 / 视图 / 例程 / 序列 / 触发器 的树,每类按文件夹分组并显示数量(表里还能继续展开「列 / 键 / 索引」),单个分组对象很多时先列前 200 个、点「显示剩余 N 个」继续展开;数据源节点上右键可以直接打开查询控制台、复制连接名、复制连接ID、复制地址或重新连接;数据源可以按住行上下拖动调整显示顺序,顺序保存在本机配置里、重开面板仍然生效;删除的数据源会先移入回收站(工具栏「回收站」在「设置」前),可随时恢复或彻底删除(彻底删除会一并清掉保存的密码与结构缓存),库节点上右键可以复制库名、「只看这个库」(选完光标会落在筛选框里,方便接着补表名),或把整个库的表和视图定义导出成一个 .sql 文件;右键菜单打开后可用方向键在菜单项间移动、Enter 执行、Esc 关闭;焦点在树里时 Ctrl/⌘ + F 直接跳进上方的筛选框;选中表在下方显示列、默认值、主键、索引与注释,右上角的「DDL」按钮弹出该表的建表语句(旁边的「复制列名」按逗号复制全部列名,「复制查询」拼一条列名写全的 SELECT)(服务器取不到时按结构重建,并在弹层里说明原因);对象上右键还有「打开数据 / 在控制台查询 / 复制查询语句 / 查看 DDL / 复制名称 / 复制限定名 / 只看这个表」菜单(「在控制台查询」会拼好带分页的 SELECT 放进新的查询控制台,只填不执行;「只看这个表」与库节点的「只看这个库」一样,选完光标会落在筛选框里);选中函数、存储过程、触发器或序列时,下方直接展示服务器返回的定义。
  • Redis 键空间:Redis 连接按「数据源 → db{库号}(可展开/收起)→ 键」浏览,每个逻辑库独立分页扫描、各自「加载更多键」,筛选框会自动扫描匹配的键,旁边的类型下拉可以只看 string / list / set / hash / zset / stream(Redis 6 起由 SCAN TYPE 在服务端过滤),「继续」只在筛选条件没变时可用(改了 MATCH 或类型后需要重新点「扫描」,否则游标会接错批次),已加载的键还能按子串过滤(Esc 或 × 清空),工具栏的「复制键名」按换行复制当前列表并提示条数;点键在下方直接看值(表格化返回 hash / list / set / zset,string 原样展示;string 里存的是 JSON 对象/数组时自动缩进成块,方便直接读配置),Redis 连接不显示「执行计划 / 事务 / 打开数据表」这些 SQL 专属按钮;命令框旁的「清空」(或 Ctrl/⌘ + L)能清掉正在输入的命令;值面板上方可一键复制键名或完整值,也能点刷新重新读一次这个键(键列表里的 TTL 与大小跟着更新)。行尾可以勾选要展示的逻辑库(默认只展示连接配置里的库,范围为 Redis 的 databases 数量);未连接或未打开过时行尾显示「连接」按钮,连上自动加载 Schema / 键空间,断线后仍可用缓存浏览。
  • 结构缓存:连接过一次后,Schema、对象清单、表结构(列 / 键 / 索引)以及 Redis 的逻辑库数量和各库键清单会写入插件数据目录:树结构(Schema、对象清单、Redis 键清单)存 structure.json,表的列 / 索引描述按连接分别追加到 descriptions/<连接ID>.ndjson(后台补缓存时只追加几行,不再整文件重写;旧版单文件缓存首次启动会自动拆分迁移)。<!-- TODO(0.5.0): 去掉「旧版单文件缓存首次启动会自动拆分迁移」这半句。 -->树接口只传树结构(通常几百 KB),描述在打开表时按需读取,打开面板不再传输几十 MB 的 JSON;之后即使不连接(数据库下线、断网、只想离线看结构)也能展开浏览缓存的树,再次连接时自动用最新结构覆盖,离线状态在树上有明确标注。连接成功、展开 Schema、勾选新的 Schema 或点工具栏「刷新」后,客户端会把当前可见的 Schema 告诉宿主,后台以低并发只补齐这些 Schema 里还缺的列与索引描述(不阻塞连接响应;连接断开即停止,对象被删除或改名时对应条目自动清理)——普通连接只补缺失条目,点「刷新」才会重读全部;新数据源默认只勾选它的默认 Schema(连接配置里的数据库名,取不到时用登录用户),需要看其他 Schema 时在树里勾选即可,勾选后会立刻补缓存。所以打开表详情一般不再等服务器。后台缓存进行期间,底部状态栏会显示转圈与「缓存结构 已完成/总数」,结束(或断开连接)后自动消失。
  • 表下钻:树里展开表即可看到「列 / 键 / 索引」三个分组——列带类型与主键标记,键与索引带所属列,不用点开详情面板就能看清结构。
  • 双击打开数据表:树里双击表或视图,会在右侧栏新开一个数据表标签页分页浏览数据(标签页标题是表名,正文顶部显示 schema.table(只读连接会标「只读」));顶部 WHERE / ORDER BY 输入框会下拉提示这张表的列名,回车即生效(Ctrl/⌘ + F 直接跳进 WHERE 框);填了过滤条件或排序时,旁边的小 × 能一键清空并重新查询(WHERE 与 ORDER BY 框里按 Esc 同样清空),底栏显示实际执行的 SQL(旁边的复制按钮可原样带走,复制后在底栏提示,2.5 秒后自动消失)、当前区间、总行数与翻页按钮(页码输入框回车可直接跳到某一页,超出范围会落到最后一页;Ctrl/⌘ + R 只刷新当前页,刷新会重算总行数,当前页已经不存在时自动退到最后一页(行数统计因权限或超时失败时显示「行数未知」,翻页仍可用)),每页 100 / 200 / 500 / 1000 / 2000 / 5000 行可切,选过的每页行数会记住,ORDER BY 排序条件也会按表记住(换页、重开标签页都沿用,点「清空排序」或 × 才会忘掉;记住的列被删或改名时会自动丢掉),同一张表可重复打开互不影响;工具栏的表格按钮可以直接弹出这张表的建表语句(可一键复制),不用回到树里找——视图打开的标签页读的是视图定义,不会拿表结构去猜;右上角的「自动刷新」可选每 5 / 10 / 30 秒重查当前页(上一次还没返回时会跳过这一拍,标签页在后台时不查询,切回时会立刻补一次,导出进行中不会插一脚,选过的间隔会记住);没有数据时按有没有查询条件分别提示「这张表还没有数据」或「没有匹配的行」,条件没命中时可以直接点「清空条件」重查;加载失败时错误提示旁的「复制」能把 message 与服务器细节整段带走。
  • 列筛选:数据表标签页的漏斗按钮打开列筛选行,每列一个输入框,输入即按 LIKE 过滤(回车立即生效,400ms 自动刷新);开着筛选行时点任意单元格可按该值精确筛选,点 NULL 单元格筛 IS NULL,筛选条件与顶部手写 WHERE 用 AND 组合,生效的筛选项数显示在漏斗徽标上,逐列 × 或再次收起即可恢复(筛选行里有多个条件时,行号列的 × 一次清掉全部列筛选;在筛选行里按 Esc 直接收起,已经生效的条件不会被丢掉,筛选行开着的话下次打开这张表仍然是开着的)。
  • 结果导出:数据表标签页的下载按钮导出 CSV、JSON、SQL 或 Markdown,都可以选「当前页」或「全部」。CSV 带 UTF-8 BOM、遇逗号引号换行自动加引号,Excel 直接打开不乱码;也可以「复制当前页 CSV」/「复制当前页 TSV」(TSV 粘进 Excel 直接分列)「复制当前页 JSON」「复制当前页 SQL」(每行一条 INSERT)或「复制当前页 Markdown」直接贴进表格软件、文档或 PR;JSON 保留数字与 null 类型;SQL 按方言加引号并转义字面量;Markdown 直接贴进文档或 issue(单元格里的竖线与换行会自动转义)。导出内容与当前 WHERE、列筛选条件一致,分页抓取,单次上限 5 万行;抓取过程中底栏出现「取消」,点了就不再继续取、也不会生成文件。菜单最后的「整表脚本」会把建表语句和全部数据合成一个可直接执行的 .sql 文件,换环境时不用再分开导出。表格每行开头有勾选框(Shift 点可以连选一段,表头勾选框一次选中 / 取消当前页全部行),勾选后导出菜单会多出「导出已选」分组(CSV / JSON / SQL / Markdown)和「复制已选」分组(Markdown / CSV / TSV / JSON / SQL),只导出或复制勾中的那几行;翻页、改筛选或刷新后选择会自动清空,导出完成同样清空。导出菜单按「导出当前页 / 导出已选 / 复制当前页 / 复制已选 / 导出全部」分成二级分组,鼠标移到分组上向右展开子菜单,主菜单不再是一长串平铺项。
  • 转到控制台:数据表标签页工具栏的终端按钮会用当前表名、WHERE、ORDER BY 和每页行数拼好一条 SELECT,在新开的查询控制台标签页里打开(只填进编辑器,不会自动执行);想改写成 JOIN、加聚合或看执行计划时不用再手抄表名。在单元格上右键选「在控制台按该值查询」,会带上 列 = 值(数字不加引号、文本按方言转义、NULL 用 IS NULL)在新控制台里打开,用来在大表里追一条记录很方便;「复制 WHERE 条件」把同一个 列 = 值 片段(带 WHERE)直接放回剪贴板。反过来,控制台工具栏的「打开数据表」按钮会按编辑器里这条语句的 FROM 打开对应表的数据表标签页(是视图就按视图打开,DDL 读的是视图定义)(SELECT 1 这类没有目标表时按钮不可用)。
  • 查看完整值:网格里的单元格只占一行,双击任意单元格(或右键菜单「查看完整值」)会在弹层里展开全部内容——存的是 JSON 对象/数组时自动缩进成多行,长文本按原样保留换行,弹层底部可一键复制,Esc 关闭。网格里超过 400 字的单元格只画前 400 字(悬停提示与弹层仍是完整值),几十 MB 的文本字段不会把整张表拖慢。
  • 右键复制:结果网格的单元格右键可以复制单元格值、整行(制表符分隔,粘进表格软件就是一行),控制台与数据表标签页都能「复制 INSERT 语句」(控制台按当前语句里的表名推断,SELECT 1 这类没有目标表的语句菜单项不可用)——按当前方言给表名、列名加引号,NULL 原样、数字与布尔按类型输出、字符串转义单引号,拿来就能执行或改一改再执行。
  • 大结果集虚拟滚动:数据表与 SQL 控制台的网格只渲染可视区域加少量缓冲行(超过 200 行自动启用),500 / 2000 行一页也只保留几十个 <tr>,滚动条长度与行号仍是真实数据;表头 sticky、行高固定 22px,翻页或换页后自动回到顶部。
  • 筛选自动展开与高亮:树顶部输入筛选词时,命中项所在的路径会自动展开——数据源、schema、表/视图/例程等分组逐级打开,必要时按需拉取未展开 schema 的对象列表(输入停顿 200ms 才开始匹配,连续打字不会反复整树重绘;按 Enter 立即匹配、按 Esc 清空,输入框旁的小 × 也能一键清掉;一条都匹配不到时树里会直接说「没有匹配的对象」,命中时树顶部会标出「N 个对象匹配」);命中的文字片段以浅色底标记,未加载过结构的数据源保持可见,方便直接连接。筛选词也可以写成 库.表(如 shop.ord):点号前面按 schema

…(truncated)

Rendered from the README published on npm. Formatted only, not edited.

Versions

Published on npm::7,最后更新 2026-11-06

Links

GitHub · Homepage · npm

Same category