配置 SQLFluff 规则

nib*_*aAS 13 sql postgresql dbt sqlfluff

我使用 SQLFluff 来确保公司的语法统一,并在 dbt 中运行模型之前减少错误警告。由于我们的语法与 SQLFluff 的语法不完全匹配,我想进行一些更改。

SQLFluff 提供的规则参考帮助我设置了内联忽略错误,如下面的代码(最后一行代码)所示。

所以我有两个问题,在 SQLFluff 规则参考的帮助下我也无法回答。

  1. 我想将规则L032设置为默认“false”,而无需每次在 SQL 中手动输入。

  2. 如何更改有关规则L016的行的最大长度?我想设置默认值,例如 150。

规则_L016

SELECT
    country.country_name,
    country.population,
    currency.currency_name,
    currency.currency_id,
    currency.strange_long_variable_name_which_is_too_long as not_so_long_variable_name
FROM country
LEFT JOIN currency
    USING (country) -- noqa: L032
Run Code Online (Sandbox Code Playgroud)

我试图通过规则参考来解决这个问题,但无法解决。非常感谢帮助!

nib*_*aAS 9

在@suhprano的回答的帮助下,我能够找到适合我的问题的解决方案。因此,我将发布我自己的问题的答案。我这样做的目的是为其他解决类似问题的人提供帮助。

我在用户配置文件文件夹中创建了 .sqlfluff 文件。在这个文件中,我添加了以下内容:

[sqlfluff]
exclude_rules = L032
[sqlfluff:rules]
max_line_length = 150
Run Code Online (Sandbox Code Playgroud)

在这种情况下,SQLFluff 将从在此变量指定的路径中找到的任何 .sql 文件加载配置。

  • 您好,Albin,我尝试创建 .sqlfluff 文件来排除一些规则,但是在使用 lint 命令后,仍然没有排除规则并显示这些规则的错误或警告,请问我们需要在哪里保留 .sqlfluff 文件,以便该规则将被排除 (2认同)