SHsql
按照 Database Client 文档 实现的 VS Code 数据库 / 服务客户端扩展。没有任何限制:不限连接数,文档里所有 Premium 功能(ER 图、Mock、结构同步、数据导出、JSON 结果、DDL 跳转、代理、工作空间连接、云同步、SFTP 自动同步等)全部免费可用,也没有任何遥测。
支持的类型
| 面板 |
类型 |
| Database |
Snowflake、Google BigQuery、Databricks SQL、Apache Hive / Spark Thrift / Kyuubi、IBM DB2(JDBC)、达梦 DM、任意 JDBC 驱动,以及 MySQL、MariaDB、TiDB、OceanBase、Doris、StarRocks、PostgreSQL、CockroachDB、Redshift、Kingbase(人大金仓)、GaussDB/openGauss、Greenplum、TimescaleDB、SQL Server、Oracle(thin 模式,无需 Instant Client)、SQLite(内置 WASM,无需 sqlite3)、DuckDB(需 duckdb CLI)、ClickHouse、Cassandra/ScyllaDB、Trino/Presto |
| Service |
SSH(SFTP/终端/端口转发/监控)、Redis(单机/集群/哨兵)、MongoDB、ElasticSearch/OpenSearch、Kafka、RabbitMQ、Docker(本地/TCP/SSH)、FTP/FTPS、S3(AWS/阿里云 OSS/腾讯云 COS/七牛/MinIO)、WebDAV、etcd、ZooKeeper、Grafana Loki、Neo4j、RDP 远程桌面 |
所有 TCP 类连接都支持 SSH 隧道、SOCKS5 代理、HTTP 代理。
界面语言
支持 English / 简体中文 / 日本語 / ئۇيغۇرچە(维吾尔语,从右到左布局)。
命令面板执行「Database Client: Change Language / 切换语言」,或设置 database-client.language(auto 跟随 VS Code)。
树视图、通知、输入框和所有面板立即切换;菜单与命令名称跟随 VS Code 显示语言(重新加载窗口生效)。
功能对照文档
连接管理
- 两个侧边栏:Database / Service,连接向导(
+),编辑 / 复制 / 删除 / 断开 / 刷新
- 分组、拖拽排序与移动分组、全局 / 工作空间(
.vscode/dbclient.json,可提交到 Git)作用域
- 元数据缓存与刷新、对象筛选(树视图 Ctrl+F 或筛选按钮)
- 打开
.db/.sqlite/.duckdb 自动连接(自定义编辑器)与 Quick Connect
- 设置菜单(齿轮):导入 / 导出连接 JSON、编辑工作空间连接、云同步(AES-256-GCM 加密后上传到 GitHub 私有 Gist 或任意同步盘文件)、VS Code Settings Sync 开关
SQL 编辑器
Ctrl/Cmd+Enter 执行当前语句、Ctrl+Alt+Enter/Cmd+Ctrl+Enter 新标签执行、Ctrl/Cmd+Shift+Enter 执行全部、Ctrl+Alt+Shift+Enter 不解析执行、Ctrl+Alt+C 切换活动连接、右键 Run With JSON
- 支持
DELIMITER、GO、$$ 美元引号、存储过程 BEGIN/END 的语句拆分,空行分隔(灵活解析)
- 表 / 列 / 别名 / 关键字 / 函数智能补全、内置片段(
sel ins upd del joi case …)
- CodeLens
Run / Copy,悬浮表名显示完整结构 + View Data/DDL/Design 链接,Ctrl+点击 跳转 DDL
- SQL 变量
:name $name ${name}(SQL Variables 面板预设),查询历史面板(筛选、重放、清空)
- 无 WHERE 的 UPDATE/DELETE 二次确认,只读连接保护,SQL 格式化
- 每个连接的 Query 文件夹(新建、重命名、删除、链接外部目录)
- SQL 笔记本
.sqlbook:每个单元格可绑定不同连接
结果视图
- 虚拟滚动数据网格、服务端分页 / 总数、排序、列筛选、WHERE / ORDER BY 条件栏、按值筛选
- 双击行内编辑、多行文本 / JSON 弹窗编辑、新增 / 克隆 / 删除行、预览变更 SQL、
Ctrl/Cmd+S 保存
- 复制为 TSV / CSV / JSON / Markdown / INSERT / UPDATE / DELETE
- 导出 CSV、TSV、JSON、SQL、Markdown、HTML、Excel(当前页 / 全部 / 选中行),导入 CSV / JSON / SQL
- 默认 / 转置 / JSON 视图,样式(字体、行高、边框、对齐、NULL 文本),锁定标签、多结果标签、自动刷新、
Ctrl/Cmd+↑/↓ 历史查询
- 状态栏实时指标(连接数、QPS/TPS)
设计与高级功能
- 可视化表设计(列、类型、非空、主键、自增、默认值、注释、排序;索引;外键查看;DDL 预览后执行),SQLite 自动重建表
- ER 图:自动布局、拖拽、缩放平移、小地图、按命名推断关系、仅显示相关表、导出 SVG / PNG / Mermaid
- Mock 数据:表界面或
表名-mock.json 文件(CodeLens Start Generate),MockJS 风格规则(@name @email @datetime @integer(1,100) @pick(a,b) …)
- 结构对比 / 同步:比较两个库或 Schema,生成并执行迁移 SQL
- 生成 Markdown / HTML 数据库文档、全文搜索、服务器管理面板(仪表盘、进程/Kill、状态、变量、存储、用户)
- 备份:Dump Struct And Data / Dump Struct(优先 mysqldump / pg_dump,否则内置),Import SQL
SSH / 远程
- SFTP 浏览(收藏夹、隐藏文件、跳转路径),双击在 VS Code 中打开,保存即自动上传
- 上传 / 下载(含文件夹)、新建、重命名、删除、复制路径、新窗口打开 / 加入工作区
- 终端(含在目录打开、执行 .sh 脚本、Zmodem rz/sz 文件传输)、执行命令、端口转发(本地/远程,持久化并在启动时恢复)
- 多服务器监控(CPU、内存、Swap、磁盘、网络、Top 进程),新建用户、修改密码、上传公钥
- FTP / S3(Bucket、临时 URL)/ WebDAV 同样以文件树 + 虚拟文件系统方式使用
其他服务
- Redis:按
: 分组的键树、搜索、String/Hash/List/Set/ZSet/Stream/JSON 编辑器、TTL、重命名、终端(redis-cli)、INFO / SLOWLOG / CLIENT LIST、FLUSHDB、JSON / JSON Lines 备份恢复
- MongoDB:数据库 / 集合 / 索引、文档浏览编辑(筛选、排序、分页)、
.dbclient-js 脚本(Ctrl+Enter)、统计、当前操作、Dump / Restore
- ElasticSearch:索引 / 别名 / 模板 / Data Stream、文档浏览编辑、mapping / settings、开关 / 刷新 / 删除索引、
.es 请求文件(补全、CodeLens、Ctrl+Enter)、节点信息
- Kafka:Topic(创建、删除、分区、详情)、消息浏览与生产、Consumer Group 偏移 / Lag、重置 Offset
- RabbitMQ:VHost、队列(查看 / 消费消息、发布、清空)、交换机(发布、绑定)、用户
- Docker:容器(启动 / 停止 / 重启 / 暂停 / 删除 / Inspect / 日志 / Shell / Stats)、镜像(拉取、运行)、网络、卷、Compose 项目、Prune
- etcd / ZooKeeper:键值树,直接在编辑器中打开并保存值
- Loki:标签浏览、LogQL 查询、实时刷新、关键字高亮
- Neo4j:Label / 关系 / 属性,
.cql 文件执行 Cypher,打开 Neo4j Browser
AI
- 聊天参与者
@dbclient(/databases、/tables、/query,或自然语言 → 基于真实表结构生成 SQL,一键运行)
- 语言模型工具:
dbclient_listDatabases、dbclient_listTables、dbclient_executeQuery(写操作需确认)
开发
npm install
npm run build # esbuild 打包到 dist/
npm test # tsc 编译 + 无界面冒烟测试(SQLite 全流程)
node test/bundle-smoke.js # 验证打包产物与全部驱动可加载
npm run i18n # 合并 i18n/src/*.txt 翻译并生成 package.nls.*.json
npm run package # 生成 .vsix
在 VS Code 中按 F5(Run Extension)即可调试。修改菜单 / 命令请编辑 scripts/gen-package.js 后执行 npm run gen。
说明
- DB2 / 通用 JDBC 通过内置的 Java JDBC 桥(
resources/jdbc/JdbcBridge.java,需本机安装 JDK 11+)连接;DB2 驱动可一键从 Maven Central 下载,其它驱动可用「Download JDBC Driver」命令下载。
- BigQuery 使用服务账号 JSON 密钥或
gcloud auth application-default login 的凭据;Databricks 需要个人访问令牌和 SQL Warehouse ID。
- RDP:Windows 调用 mstsc,macOS 调用 Windows App(Microsoft 远程桌面),Linux 调用 xfreerdp / Remmina。
| |