Freedom251 › SQL Linters and Formatters
SQLFluff

What SQLFluff is
SQLFluff is a free, open source SQL linter designed with ELT work in mind. It identifies style and syntax issues, helping teams focus code review on what queries do. It parses SQL without requiring database access and can automatically correct many linting violations with a single command. Documentation describes support for more than 25 SQL dialects, including T-SQL, PostgreSQL, BigQuery, and Snowflake, as well as more than 70 rules for style, structure, and best practices. SQLFluff supports Jinja templates and dbt, and can run in CI/CD pipelines, including GitHub Actions output for pull request annotations. It is released under the MIT License and can be installed from PyPI with pip or another Python package manager. SQLFluff itself does not execute SQL, but templating macros such as dbt’s run_query may do so. The Jinja templater uses a sandboxed environment to limit unsafe code execution. Using the dbt templater requires its adapter and package; compile-time database access may also be needed. Community help channels include documentation, GitHub, Slack, and Stack Overflow.
Who it suits
SQLFluff suits teams that want consistent SQL style checks, autofixes, and linting in CI/CD. It also fits teams using Jinja or dbt, provided they account for the dbt templater requirements.
What it does well
- Free under the MIT License
- Supports more than 25 SQL dialects
- Autofixes many linting violations
- Parses SQL without database access
- Supports Jinja, dbt, and CI/CD
What to know first
- dbt templating needs an adapter and additional package
- Compile-time database access may be required for some models
- Some templating macros may execute SQL
Plans
| Plan | Billed and limits | Price |
|---|---|---|
| SQLFluff | Open source SQL linter; released under the MIT License | Free |
As sqlfluff.com lists them, read 5 Oct 2026. The maker's own page has the final word.
Getting started
- Visit the SQLFluff website.
- Install SQLFluff from PyPI using pip or another Python package manager.
- Choose the dialect and linting rules for the SQL project.
- Add SQLFluff to a CI/CD pipeline if needed, including GitHub Actions output for pull request annotations.
- For dbt templating, install the relevant dbt adapter and sqlfluff-templater-dbt package.
SQLFluff is an open-source SQL linter for ELT teams working across database engines. It is best for developers who want repeatable style and syntax checks in local workflows and CI, with automatic correction for many violations. Its free, MIT-licensed distribution removes purchasing friction, while dbt users should plan for additional templater setup and possible compile-time database access.
Overview
SQLFluff analyzes SQL for style and syntax problems so code review can concentrate on query behavior instead of formatting disputes. Its parser works without database access, which suits development and continuous-integration jobs that cannot or should not connect to a live system. A command-line autofix can correct many findings in one pass, although issues outside that supported set still need manual attention.
The project is released under the MIT License and the sole SQLFluff plan costs nothing. It is a linter rather than a database-testing system: it checks source text, not whether a query returns the right data.
Key features
Dialect and rule coverage
Documentation covers more than 25 SQL dialects, including T-SQL, PostgreSQL, BigQuery, and Snowflake; the product lists support for 28 languages. That breadth is valuable for mixed-engine organizations and teams standardizing SQL across projects. More than 70 rules address style, structure, and best practices, and custom rules let an organization encode conventions that generic presets cannot capture.
Autofix and review workflows
Autofix reduces repetitive cleanup by applying many lint corrections automatically. Because it does not fix every violation, teams still need review for changes the tool leaves untouched. CI/CD support makes linting enforceable on every change, while GitHub Actions output can place findings directly on pull requests instead of requiring reviewers to consult a separate report.
Templating and safety
Jinja templating and dbt support allow checks against generated SQL rather than only raw templates. The Jinja templater uses Jinja2 SandboxedEnvironment to restrict unsafe code execution, and SQLFluff itself does not execute SQL. However, macros such as dbt's run_query can execute arbitrary SQL. The dbt templater also requires the relevant dbt adapter and sqlfluff-templater-dbt package; models that query a database during compilation need database access. That makes plain SQL projects simpler to adopt than dbt projects with compile-time dependencies.
Installation and support
The project directs users to install from PyPI with pip or another Python package manager. Documentation, GitHub, Slack, and Stack Overflow provide community support rather than a separate paid support tier.
Pricing
| Plan | Price | Includes |
|---|---|---|
| SQLFluff | free | Open-source SQL linter under the MIT License |
There is no free trial because the product is already free, and no paid tier, seat charge, usage quota, or renewal term is stated. Every user receives the same open-source distribution, so organizations needing commercial support or contractual service terms should assess whether community channels meet their requirements.
Platforms
SQLFluff is listed for API, Linux, macOS, self-hosted deployments, and Windows. Python-package installation makes it suitable for developer machines and build environments, while self-hosting keeps execution within an organization's infrastructure.
Who it's for
Choose SQLFluff for ELT teams maintaining SQL across several dialects, especially when consistent rules, custom checks, pull-request feedback, and CI enforcement matter. It is also a good fit when linting must run without database connectivity. Teams using dbt should budget for adapter and templater installation and verify access requirements for models that query during compilation. If your priority is result validation rather than source-code quality, a database-testing tool is a better companion or alternative.
Pros and cons
- Pros: Free MIT-licensed software removes per-seat cost; support for more than 25 dialects covers heterogeneous estates; more than 70 rules and custom rules support detailed standards; autofix handles many routine violations; CI/CD and GitHub Actions annotations put feedback in the review path; parsing does not require database access.
- Cons: Autofix is partial, so not every finding is resolved automatically; dbt use adds two installation dependencies and may require compile-time database access; templating macros such as run_query can execute arbitrary SQL despite the linter's own non-execution model; community channels are the stated support route.
Alternatives
For a broad comparison, see SQL Linters and Formatters, Database Testing Tools, and Linters.
- SQL Formatter is a free MIT-licensed formatting library with a browser demo, suitable when formatting is the main requirement.
- SQLCheck is a free open-source command-line tool for Linux, macOS, and Windows.
- Sqruff is a free option spanning extensions, desktop systems, self-hosting, and the web.
- JSQLFormatter is a free formatter for Linux, macOS, self-hosted, and Windows environments.
- Poor SQL is a free, AGPL-licensed formatter with online and offline use plus SSMS and Visual Studio plugins.
- Sleek is a free open-source formatter distributed for extensions and desktop platforms.
- sqlfmt offers a free browser formatter that runs through WebAssembly with no installation.
- TSQLLint is free MIT-licensed software installable with dotnet-tool, Homebrew, or NPM.
Verdict
SQLFluff is the right choice for teams that need one free linter across multiple SQL dialects, enforceable rules, custom checks, and CI feedback without database connections. Look elsewhere when you need only lightweight formatting, a specialized alternative, or a workflow that cannot accommodate dbt's extra packages and possible compile-time access.
Verdict
SQLFluff offers broad dialect support, configurable rules, and automated fixes without executing SQL itself. Teams using dbt should account for the extra templater requirements and possible compile-time database access.
Questions
Is SQLFluff free?
Yes. The SQLFluff plan costs nothing and the project is released under the MIT License.
Which SQL dialects does it support?
The documentation describes support for more than 25 dialects, including T-SQL, PostgreSQL, BigQuery, and Snowflake.
Does SQLFluff need database access to parse SQL?
No. It parses SQL to catch syntax issues without requiring database access. Models that access a database at compile time when using the dbt templater do require database access.
Can SQLFluff fix linting issues automatically?
Yes. It can automatically fix many linting violations with a single command.
What is required to use the dbt templater?
You need the relevant dbt adapter and the sqlfluff-templater-dbt package.
Where can I install SQLFluff and find community support?
The project directs users to install it from PyPI with pip or another Python package manager. Community channels include documentation, GitHub, Slack, and Stack Overflow.
Facts from SQLFluff's own pages
- Auto-fix
- SQLFluff can automatically fix many linting violations with a single command. · docs.sqlfluff.com, 5 Oct 2026
- dbt requirements
- Using the dbt templater requires installing the relevant dbt adapter and sqlfluff-templater-dbt package, and models that access a database at compile time require database access. · docs.sqlfluff.com, 5 Oct 2026
- Dialect support
- The documentation says SQLFluff supports more than 25 SQL dialects, including T-SQL, PostgreSQL, BigQuery, and Snowflake. · docs.sqlfluff.com, 5 Oct 2026
- Headquarters
- Unit 82a James Carter Road, Mildenhall, Bury St. Edmunds, England, IP28 7DE · sqlfluff.com, 23 Sept 2026
- Installation
- The project’s website directs users to install SQLFluff from PyPI using pip or another Python package manager. · sqlfluff.com, 5 Oct 2026
- Integrations
- SQLFluff can be used in CI/CD pipelines and supports GitHub Actions output for pull request annotations. · docs.sqlfluff.com, 5 Oct 2026
- Linting
- It reports SQL style and syntax issues so teams can focus code reviews on function rather than form. · sqlfluff.com, 5 Oct 2026
- Maintainer
- The website identifies SQLFluff Ltd. as incorporated in England and gives its registered address as Unit 82a James Carter Road, Mildenhall, Bury St. Edmunds, England, IP28 7DE. · sqlfluff.com, 5 Oct 2026
- Parsing
- It parses SQL to catch syntax issues without requiring database access. · sqlfluff.com, 5 Oct 2026
- Purpose
- SQLFluff is an open source, dialect-flexible SQL linter designed with ELT applications in mind. · sqlfluff.com, 5 Oct 2026
- Rules
- The documentation lists more than 70 linting rules covering style, structure, and best practices. · docs.sqlfluff.com, 5 Oct 2026
- Security
- SQLFluff does not execute SQL itself, but templating macros such as dbt’s run_query may execute arbitrary SQL; its Jinja templater uses Jinja2 SandboxedEnvironment to limit unsafe code execution. · docs.sqlfluff.com, 5 Oct 2026
- Support
- The project lists documentation, GitHub, Slack, and Stack Overflow as community channels. · sqlfluff.com, 5 Oct 2026
- Templating
- SQLFluff supports Jinja templating and dbt. · sqlfluff.com, 5 Oct 2026
Where SQLFluff stands on Freedom251
- SQL Linters and Formatters#7 of 26
- Database Testing Tools#14 of 28
- Linters#23 of 33
