Squawk
Squawk is an open-source linter and language server for PostgreSQL migrations and SQL.
What Squawk is
Squawk is an open-source linter and language server for PostgreSQL migrations and SQL. It checks schema changes for risks that could block database reads or writes, and its rules identify potentially unsafe statements, incompatible changes, and migration patterns. The CLI can lint SQL files, while a language server and VS Code extension bring linting into the editor. For pull requests, a GitHub Action can check modified migrations; Squawk can also comment through its upload-to-github command or GitHub App. The project documents npm, PyPI, release binaries, Docker, a browser playground, and VS Code as ways to use it. The playground runs a WebAssembly build in the browser. Configuration includes PostgreSQL version, included or excluded rules and paths, and whether SQL files are assumed to run in transactions; some rules must be enabled explicitly. Squawk supports PostgreSQL only, has no automatic fixes or custom rules, and its GitHub App needs Pull Requests write permission to comment.
Good
- Checks migration risks to database reads and writes
- VS Code extension and language server
- GitHub Action can lint modified migrations
- Configurable rules, paths, and transaction assumptions
Watch out
- Supports PostgreSQL only
- No automatic fixes
- No custom rules
- Some rules are opt-in
Who it suits
Squawk suits developers working with PostgreSQL schema changes who want to lint migrations locally, in an editor, or in pull request workflows.
Verdict
Squawk provides several ways to check PostgreSQL migrations, including editor and pull request workflows. It is a focused choice for teams comfortable reviewing and fixing flagged SQL themselves.
The facts
Each one read from Squawk's own pages, with the date it was checked.
What it does
- Audience
- Squawk is aimed at developers working with Postgres schema changes who want to lint migrations locally, in an editor, or in pull request workflows.checked 4 Oct 2001
- CLI
- The CLI can lint SQL files and supports configuration for excluding rules and paths.checked 4 Oct 2001
- Downtime prevention
- It checks schema changes for risks that can block database reads or writes.checked 3 Oct 2001
- Editor support
- Squawk provides a language server and VSCode extension for editor linting.checked 4 Oct 2001
- GitHub comments
- Squawk can comment on GitHub pull requests through its upload-to-github command or a GitHub App.checked 3 Oct 2001
- GitHub integration
- Squawk can comment on GitHub pull requests through a GitHub Action or its upload-to-github command.checked 4 Oct 2001
- Install methods
- The docs list npm, pip, direct release binaries, Docker, the browser playground, and VSCode as ways to use Squawk.checked 4 Oct 2001
- Migration guidance
- Its rules flag schema mistakes, incompatible changes, and migration patterns that can block reads or writes.checked 3 Oct 2001
- Opt-in rules
- Some rules are disabled by default and must be enabled with an include option or configuration setting.checked 3 Oct 2001
- Other CI
- The docs describe configuring Squawk as a GitHub App for use outside GitHub Actions, including CircleCI.checked 4 Oct 2001
- Postgres focus
- The product is specifically a linter for Postgres migrations and SQL.checked 4 Oct 2001
- Pricing
- The pages opened provide no pricing or paid plans.checked 4 Oct 2001
- Product
- Squawk is a linter and language server for Postgres migrations and SQL.checked 4 Oct 2001
- Pull request integration
- The GitHub Action can lint modified SQL migrations on pull requests.checked 3 Oct 2001
- Purpose
- It checks schema changes to help prevent blocking reads or writes and breaking existing clients.checked 4 Oct 2001
- Rule configuration
- Users can include or exclude rules, set a PostgreSQL version, and configure whether SQL files are assumed to run in transactions.checked 3 Oct 2001
- Rules
- Its rules flag potentially unsafe migration statements and provide actionable messages with examples and reasoning.checked 4 Oct 2001
- Security and compliance
- The pages opened provide no security or compliance commitments.checked 4 Oct 2001
- Support
- The site links to GitHub Help and directs users to open an issue if a rule, message, or documentation page needs improvement.checked 4 Oct 2001
- Support route
- The website links to GitHub Help for support.checked 3 Oct 2001
- Ways to install
- The project documents installation through npm, PyPI, direct release binaries, Docker, a browser playground, and VS Code.checked 3 Oct 2001
Where it runs
- Browser playground
- A WASM powered playground lets users lint SQL locally in a browser.checked 4 Oct 2001
- GitHub App permissions
- The GitHub App setup guide specifies Pull Requests write permission so Squawk can comment on pull requests.checked 3 Oct 2001
- Platform binaries
- The releases page lists macOS (darwin) and Linux binaries as well as VS Code extension packages.checked 3 Oct 2001
Alternatives to Squawk
- 1
Poor SQL
Free planOpen sourceWebAPIExtensionLinux7.3Free plan - 2
SQLFormat.org
Free planOpen sourceWebAPIExtensionSelf-hosted7.1Free plan - 3
sqlfmt
Free planWebAPILinuxSelf-hosted6.7Free plan - 4
RegSQL
Free planWeb6.5From $8 a month - 5
SQLCheck
Free planLinuxmacOSWindows6.5Free plan - 6
sqlfmt
Free planWebAPI6.5From $9 a month
