元数据与内省
元数据包含有关数据库对象、结构、数据库对象源代码等的信息 WebStorm 使用此信息在 数据库 工具窗口中显示对象、显示其 DDL、在补全时进行建议,并用于其他编码辅助、导航和搜索功能
在 WebStorm 中,获取数据库元数据有两种方式:迷你目录与 内省
- 迷你目录
通过系统架构的迷你目录,系统架构的元数据在 IDE 中已被预先内省并提供 这使得在无需连接数据库且未对系统架构进行内省的情况下也能编写使用系统元数据的脚本
内省
内省是加载数据库元数据的过程 执行内省时,会检查数据源中的结构信息,以检测表、列、例程以及其他具有属性的数据库对象
仅支持具有数据结构和目录的数据库进行内省
默认情况下,仅对选中显示在 数据库 工具窗口中的架构和数据库进行内省
您可以通过在 数据库 工具窗口中选择架构和数据库,或在 数据源和驱动程序 对话框(Shift+Enter )中编辑数据源属性来确定哪些架构和数据库将被内省和显示
选择用于内省的架构和数据库
在 数据库 工具窗口中:
要打开 数据库 工具窗口,请从主菜单中选择 或者按下 ⌘ 1
在 数据库 工具窗口中,单击数据源、数据库或架构名称旁的 第 N 个,共 M 个 按钮

在架构选择弹窗中,选择数据库或架构并按下 Enter
在 数据源和驱动程序 对话框中:
要打开该对话框,请在 数据库 工具窗口中右键单击数据源并选择
属性 或者点击工具栏中的
数据源属性 图标
在 数据源和驱动程序 对话框的 架构 选项卡中,选择需要的数据库或架构

请注意, 对象筛选器 字段仅定义哪些对象在 数据库 工具窗口中可见,并不影响内省范围
应用更改并关闭对话框
一旦对所需的数据库和架构进行了内省,IDE 即可将脚本中的数据库对象解析到正确的上下文中 以下示例展示了内省与未内省架构中的数据库对象解析情况

MySQL数据源尚未被内省PostgreSQL数据源中唯一内省的guest数据库 该数据库包含四个架构,只有public已被内省在 查询控制台 中解析数据库对象:对已内省的
guest架构成功,对未内省的tests架构失败
对于每个数据源,您还可以选择加载数据库对象源代码的架构类别
为不同架构加载数据库对象源代码
要选择加载数据库对象源代码的架构,请打开 数据源和驱动程序 对话框(Shift+Enter )并选择一个数据源
在 选项 选项卡中,导航至 加载以下对象的源代码 设置并选择架构类别
应用更改并关闭对话框

如果处理所有对象,数据库用户可能会遇到较长的内省时间,而这通常不是日常工作和编码辅助所必需的 为减少被内省的对象数量,WebStorm 提供了附加的 内省类型 ,并为部分支持的数据库实现了三种 内省级别
内省类型
内省类型定义了内省过程中哪些数据库对象会被刷新 某些数据库支持将该内省范围限定为特定对象 在 WebStorm 中,依据数据库的不同,可用的内省类型包括: 完全内省、 片段内省和 增量内省
- 完全内省
- 增量内省
仅刷新数据库中自上一次内省运行后发生更改的数据库对象
- 片段内省
仅刷新在 数据库 工具窗口中选择的数据库对象,执行 刷新 操作时亦然。

在 查询控制台 中运行语句时,会应用 smart refresh 机制。 WebStorm 会分析该语句可能修改的对象,并仅刷新这些特定对象。
对于部分受支持的数据库,可以通过 introspection levels 执行内省操作。
- 按级别进行内省
introspection levels 定义了获取数据库对象详细信息的程度:
级别 1:仅加载数据库对象名称。
级别 2:除数据库对象的源代码外,加载所有内容。
级别 3:加载全部内容。
有关 introspection levels 的更多信息,请参阅 内省级别 主题。

如果某个数据库不支持特定的内省类型,WebStorm 将执行完整的内省。 以下数据库支持特定的内省类型与 introspection levels:
数据库 | 增量内省 | 片段内省 | introspection levels |
|---|---|---|---|
是 | 是 | - | |
是 | - | - | |
是 | 是 | 是 | |
是 | 是 | 是 | |
是 | 是 | 是 | |
是 | 是 | 是 | |
是 | 是 | 是 |