SQL 解析范围
通过使用 SQL 解析范围,您可以将文件夹或文件与特定数据源关联起来。 当您设置此映射时,您可以使用与关联数据源相对应的编码辅助功能。
当设置了 SQL解析范围时,IDE 会建议适用于相关数据源的数据库对象。 考虑到您有两个数据源,一个用于您的生产数据库(PostgreSQL 14),另一个用于您的测试数据库(PostgreSQL 12.8)。 两者数据库中的表具有相同的名称,但数据库的结构不同。 您可以分别将 SQL 文件与任一数据库关联。
让我们将 postgresql_12.sql 映射到 PostgreSQL 12.8 数据源,并将 postgresql_14.sql 映射到 PostgreSQL 14。

两个数据源都具有 actor 表,但这个表存储在不同的模式中(guest.public.actor 和 postgres.public.actor)。 所以,如果我们尝试限定 actor 表或使用代码补全,补全建议将与相应的数据源关联。

如果我们在这些文件之间交换查询,将会得到错误(第 14-15 行)。 由于我们在 PostgreSQL 14 中 guest.public 下没有表格,并且在 PostgreSQL 12.8 中也没有 postgres 架构。
添加 SQL 解析范围
按 Ctrl+Alt+S 打开设置,然后选择 。
点击 Add 按钮。
在文件浏览器中,导航到您要与数据源关联的文件或目录。
点击 打开。
点击 解析作用域 列的单元格,然后选择 您 想要与此目录或文件关联的数据源。
要在您的项目代码中使用 SQL 编码辅助功能,请启用 language injections。

设置
项目 | 描述 |
|---|---|
项目映射 | 一组数据源、数据库和架构,供项目中的所有 SQL 文件默认使用,以解析数据库对象的未限定名称。 如果下表中未设置映射,则文件和目录使用项目映射。 |
路径 | 要与数据源或一组数据源关联的文件或目录的路径。 |
解析作用域 | 一个将与文件或目录关联的数据源或一组数据源。 如果您为已关联到数据源的目录添加映射,IDE 将显示通知对话框。 在此对话框中,您必须选择子代是继承父代的范围还是保留其范围。 |