数据库元数据浏览器 VS Code 扩展 - 在 VS Code 中浏览和查询数据库表结构元数据
解决的实际问题
- 🤔 不确定数据库中是否已有某字段定义 — 快速检索字段名,确认是否已存在
- 📋 忘记某字段放在哪张表了 — 模糊搜索列名,一键定位所属表
- 🔁 某字段是否重复定义,分布在哪些表中 — 全库搜索列名,直观展示所有关联表
- 🔄 迭代需求需新增字段,想确认是否有可复用字段 — 先查后建,避免冗余定义
- 🏗️ 是否存在相关模型的表,避免重复建表 — 按表名/注释模糊匹配,快速发现已有模型
适用人员
- 👨💻 研发:技术方案设计参考、问题排查确认字段位置等
- 🧪 测试:数据库验证确认字段位置等
- 💡 产品:需求方案设计参考等
功能特性
- 📊 元数据查询:聚焦表结构与字段定义查询,不涉及表数据操作,不同于其他复杂数据库扩展
- 🔌 支持 MySQL 数据库连接(mysql2 驱动)
- 🔌 支持 Oracle 数据库连接(oracledb 驱动,v6.10.0+)
- 🎯 Thick 模式:需要安装 Oracle Instant Client,功能更完整,兼容性更好
- 🎯 Thin 模式:纯 JavaScript 实现,无需额外安装客户端,开箱即用
- ⚙️ 可在 VS Code 设置中灵活切换模式
- 🌲 侧边栏树视图管理数据库连接
- 📊 Webview 面板展示表结构元数据(表名、表注释、列名、数据类型、列注释、是否可空)
- 🔍 表名/列名模糊筛选,支持按表精确选择
- 💾 连接配置持久化保存(新增/编辑/删除)
- ✅ 连接测试功能
- 🔌 连接/断开数据库
- ⌨️ 快捷键
Ctrl+Alt+1 快速打开
安装
从 VSIX 安装
- 下载
.vsix 文件
- 在 VS Code 中按
Ctrl+Shift+P,输入 Extensions: Install from VSIX...
- 选择下载的
.vsix 文件
从源码构建
git clone https://gitee.com/life-is-like-tea/vscode-database-metadata-browser.git
cd vscode-database-metadata-browser
npm install
npm run compile
# 按 F5 启动扩展开发宿主进行调试
使用方法
通过侧边栏
- 点击左侧活动栏中的数据库图标,打开「数据库连接」面板
- 点击
+ 按钮新增连接,填写数据库配置信息
- 数据库类型:选择 MySQL 或 Oracle
- MySQL 配置:主机、端口、用户名、密码、数据库名
- Oracle 配置:主机、端口(默认 1521)、用户名、密码、服务名/SID
- 点击连接图标连接数据库,自动打开元数据浏览面板
- 右键连接可进行编辑、删除操作
通过命令面板
- 按
Ctrl+Shift+P 打开命令面板
- 输入
Database Metadata Browser: 打开数据库工具
- 在弹出的 Webview 面板中点击状态栏展开配置
- 填写连接信息并连接
快捷键
| 快捷键 |
功能 |
Ctrl+Alt+1 |
打开数据库工具面板 |
筛选功能
连接数据库后,可使用筛选面板:
- 表名筛选:输入关键字模糊匹配表名或表注释
- 列名筛选:输入关键字模糊匹配列名或列注释
- 选择表:从下拉列表精确选择某张表查看
命令列表
| 命令 |
说明 |
extension.openDBTool |
打开数据库工具面板 |
extension.addConnection |
新增数据库连接 |
extension.editConnection |
编辑数据库连接 |
extension.deleteConnection |
删除数据库连接 |
extension.connectToDb |
连接数据库 |
extension.disconnectFromDb |
断开数据库连接 |
extension.refreshConnections |
刷新连接列表 |
extension.queryTable |
查询表数据 |
项目结构
vscode-database-metadata-browser/
├── resources/
│ └── database.svg # 扩展图标
├── src/
│ ├── extension.ts # 扩展入口 & Webview 面板
│ ├── dbService.ts # 数据库连接服务(MySQL + Oracle)
│ ├── dbTreeProvider.ts # 侧边栏树视图数据提供者
│ └── webview.js # Webview 前端脚本(旧版)
├── package.json # 扩展清单
├── tsconfig.json # TypeScript 配置
└── README.md
技术栈
- TypeScript
- VS Code Extension API
- VS Code Webview API
- mysql2(MySQL 驱动,v3.22.4+)
- oracledb(Oracle 驱动,v6.10.0+,官方 Node.js 驱动)
环境要求
- VS Code >= 1.75.0
- Node.js 16+
- TypeScript 5+
Oracle 数据库配置指南
本扩展支持 Thick 和 Thin 两种连接模式,可根据实际需求选择:
📌 模式对比
| 特性 |
Thick 模式 |
Thin 模式 |
| 依赖 |
需要 Oracle Instant Client |
无需额外安装 |
| 兼容性 |
✅ 完整支持所有 Oracle 版本 |
⚠️ 部分旧版本可能不支持 |
| 性能 |
更优(原生库) |
良好(纯 JavaScript) |
| 适用场景 |
生产环境、旧版 Oracle |
开发测试、Oracle 12c+ |
⚙️ VS Code 设置
打开设置(Ctrl+,),搜索 Database Metadata Browser:
1. Use Thick Mode(启用 Thick 模式)
- 类型:Boolean
- 默认值:
false
- 说明:启用后使用 Thick 模式连接 Oracle(需配合 Instant Client Path)
2. Instant Client Path(Instant Client 路径)
- 类型:String
- 默认值:空
- 说明:Oracle Instant Client 库文件所在目录路径(仅 Thick 模式需要)
- 示例:
- Windows:
C:\oracle\instantclient_19_20
- Linux/macOS:
/opt/oracle/instantclient_19_20
- 要求:目录中必须包含
oci.dll(Windows)或 libclntsh.so(Linux/macOS)
🚀 快速开始(Thin 模式 - 推荐)
无需任何额外配置,直接使用!
- 新建连接时选择数据库类型为 Oracle
- 填写连接信息:主机、端口、用户名、密码、服务名/SID
- 点击连接即可
📦 安装 Instant Client(Thick 模式)
如果遇到兼容性问题或需要连接旧版 Oracle,请按以下步骤操作:
Windows 系统
- 下载 Oracle Instant Client(Basic 或 Basic Light 包)
- 解压到任意目录(如
C:\oracle\instantclient_19_20)
- 在 VS Code 设置中填写路径
- 启用 Use Thick Mode
- 重启 VS Code
Linux/macOS 系统
# 下载并解压
wget https://download.oracle.com/otn_software/linux/instantclient/1921000/basiclite-linux.x64-19.21.0.0.0dbru.zip
unzip basiclite-linux.x64-19.21.0.0.0dbru.zip -d /opt/oracle
# 配置环境变量(可选,如果系统找不到库)
export LD_LIBRARY_PATH=/opt/oracle/instantclient_19_20:$LD_LIBRARY_PATH
⚠️ 常见问题
Q: 连接报错 NJS-138 或提示 "Thick mode not initialized"
A: 说明你的数据库版本需要 Thick 模式支持:
- 确认已启用 Use Thick Mode
- 检查 Instant Client Path 是否正确指向包含
oci.dll 的目录
- 重启 VS Code 使配置生效
Q: Thin 模式无法连接到 Oracle 11g 或更早版本
A: 请切换到 Thick 模式并安装 Instant Client。
Q: 如何确认 Instant Client 安装正确?
A: 检查路径下是否存在以下文件:
- Windows:
oci.dll, oraocci19.dll
- Linux:
libclntsh.so, libocci.so
开发
# 安装依赖
npm install
# 编译
npm run compile
# 监听模式
npm run watch
# 清理输出
npm run clean
# 运行测试
npm test
许可证
MPL-2.0
贡献
欢迎提交 Issue 和 Pull Request!
仓库地址:https://gitee.com/life-is-like-tea/vscode-database-metadata-browser