Ignoring Errors & Files
Ignoring individual lines
Similar to flake8's ignore, individual lines can be ignored by adding -- noqa to the end of the line. Additionally, specific rules can be ignored by quoting their code or the category.
-- Ignore all errors
SeLeCt 1 from tBl ; -- noqa
-- Ignore rule CP02 & rule CP03
SeLeCt 1 from tBl ; -- noqa: CP02,CP03
-- Ignore all parsing errors
SeLeCt from tBl ; -- noqa: PRSNOTE
It should be noted that ignoring TMP and PRS errors can lead to incorrect sqlfluff lint and sqfluff fix results as SQLFluff can misinterpret the SQL being analysed.
Ignoring line ranges
Similar to pylint's "pylint" directive, ranges of lines can be ignored by adding -- noqa:disable=<rule>[,...] | all to the line. Following this directive, specified rules (or all rules, if "all" was specified) will be ignored until a corresponding -- noqa:enable=<rule>[,...] | all directive.
-- Ignore rule AL02 from this line forward
SELECT col_a a FROM foo -- noqa: disable=AL02
-- Ignore all rules from this line forward
SELECT col_a a FROM foo -- noqa: disable=all
-- Enforce all rules from this line forward
SELECT col_a a FROM foo -- noqa: enable=all.sqlfluffignore
Similar to Git's .gitignore and Docker's .dockerignore, SQLFluff supports a sqlfluffignore file to control which files are and aren't linted. Under the hood we use the python pathspec library which also has a brief tutorial in their documentation.
An example of a potential sqlfluffignore placed in the root of your project would be:
# Comments start with a hash.
# Ignore anything in the "temp" path
/temp/
# Ignore anything called "testing.sql"
testing.sql
# Ignore any ".tsql" files
*.tsqlIgnore files can also be placed in subdirectories of a path which is being linted and the sub files will also be applied within that subdirectory.
pyproject.toml
If you use pyproject.toml for SQLFluff configuration, you can also ignore files and directories using ignore_paths in [tool.sqlfluff.core].
[tool.sqlfluff.core]
ignore_paths = [
"target/",
"supabase/migrations/*",
"generated/*.sql",
]The patterns in ignore_paths use the same matching rules as sqlfluffignore.
Ignoring types of errors
General categories of errors can be ignored using the --ignore command line option or the ignore setting in sqlfluffignore. Types of errors that can be ignored include:
lexinglintingparsingtemplating