Skip to content

lint

Lint SQL files via passing a list of files or using stdin.

PATH is the path to a sql file or directory to lint. This can be either a file (path/to/file.sql), a path (directory/of/sql/files), a single (-) character to indicate reading from stdin or a dot/blank (./) which will be interpreted like passing the current working directory as a path argument.

Linting SQL files:

sqlfluff lint path/to/file.sql
sqlfluff lint directory/of/sql/files

Linting a file via stdin (note the lone - character):

cat path/to/file.sql | sqlfluff lint -
echo `select col from tbl` | sqlfluff lint -

Usage

bash
sqlfluff lint [OPTIONS] [paths]

Arguments

ArgumentDescription
paths

Options

OptionTypeDefaultDescription
-n, --nocolorBooleanNo color - output will be without ANSI color codes.
-v, --verboseIntegerVerbosity, how detailed should the output be. This is stackable, so -vv is more verbose than -v. For the most verbose option try -vvvv or -vvvvv.
--versionBooleanfalseShow the version and exit.
--stdin-filenamePathWhen using stdin as an input, load the configuration as if the contents of stdin was in a file in the listed location. This is useful for some editors that pass file contents from the editor that might not match the content on disk.
--library-pathStringOverride the library_path value from the [sqlfluff:templater:jinja] configuration value. Set this to none to disable entirely. This overrides any values set by users in configuration files or inline directives.
--disable-noqa-exceptStringIgnore all but the listed rules inline noqa comments.
--disable-noqaBooleanSet this flag to ignore inline noqa comments.
--loggerChoice (6 options)Sentinel.UNSETChoose to limit the logging to one of the loggers.
--benchBooleanfalseSet this flag to engage the benchmarking tool output.
-i, --ignoreStringIgnore particular families of errors so that they dont cause a failed run. For example --ignore parsing would mean that any parsing errors are ignored and dont influence the success or fail of a run. --ignore behaves somewhat like noqa comments, except it applies globally. Multiple options are possible if comma separated: e.g. --ignore parsing,templating.
--encodingStringSpecify encoding to use when reading and writing files. Defaults to autodetect.
--ignore-local-configBooleanfalseIgnore config files in default search path locations. This option allows the user to lint with the default config or can be used in conjunction with --config to only reference the custom config file.
--configPathInclude additional config file. By default the config is generated from the standard configuration files described in the documentation. This argument allows you to specify an additional configuration file that overrides the standard configuration files. N.B. cfg format is required.
-e, --exclude-rulesStringExclude specific rules. For example specifying --exclude-rules LT01 will remove rule LT01 (Unnecessary trailing whitespace) from the set of considered rules. This could either be the allowlist, or the general set if there is no specific allowlist. Multiple rules can be specified with commas e.g. --exclude-rules LT01,LT02 will exclude violations of rule LT01 and rule LT02.
-r, --rulesStringNarrow the search to only specific rules. For example specifying --rules LT01 will only search for rule LT01 (Unnecessary trailing whitespace). Multiple rules can be specified with commas e.g. --rules LT01,LT02 will specify only looking for violations of rule LT01 and rule LT02.
-t, --templaterChoice: raw, jinja, python, placeholderThe templater to use (default=jinja)
-d, --dialectStringThe dialect of SQL to lint
--disregard-sqlfluffignoresBooleanfalsePerform the operation regardless of .sqlfluffignore configurations
--warn-unused-ignoresBooleanfalseWarn about unneeded -- noqa: comments.
--persist-timingStringA filename to persist the timing information for a linting run to in csv format for external analysis. NOTE: This feature should be treated as beta, and the format of the csv file may change in future releases without warning.
--disable-progress-barBooleanfalseDisables progress bars.
-p, --processesIntegerThe number of parallel processes to run. Positive numbers work as expected. Zero and negative numbers will work as number_of_cpus - number. e.g -1 means all cpus except one. 0 means all cpus.
-f, --formatChoice (7 options)humanWhat format to return the lint result in (default=human).
--write-outputStringSentinel.UNSETOptionally provide a filename to write the results to, mostly used in tandem with --format. NB: Setting an output file re-enables normal stdout logging.
--annotation-levelChoice: notice, warning, failure, errorwarningWhen format is set to "github-annotation" or "github-annotation-native", default annotation level (default="warning"). "failure" and "error" are equivalent. Any rules configured only as warnings will always come through with type "notice" regardless of this option.
--nofailBooleanfalseIf set, the exit code will always be zero, regardless of violations found. This is potentially useful during rollout.
--recursion-limitIntegerSet the Python recursion limit before linting.

Released under the MIT License.