Menu
Squawk LogoSquawk LogoSquawkDocsRules
PlaygroundQuick StartGitHub
Squawk LogoSquawk LogoSquawk
  • Docs
  • Rules
  • Playground
  • Quick Start
  • GitHub
  • General
    • Quick Start
    • Applying migrations safely
    • CLI
    • GitHub Integration
    • Web Frameworks
    • Postgres locks and further reading
    • Troubleshooting
  • Rules
    • Rules Overview
    • adding-field-with-default
    • adding-foreign-key-constraint
    • adding-not-nullable-field
    • adding-required-field
    • adding-serial-primary-key-field
    • ban-char-field
    • ban-concurrent-index-creation-in-transaction
    • ban-drop-column
    • ban-drop-database
    • ban-drop-not-null
    • ban-drop-table
    • changing-column-type
    • constraint-missing-not-valid
    • disallowed-unique-constraint
    • prefer-bigint-over-int
    • prefer-bigint-over-smallint
    • prefer-identity
    • prefer-robust-stmts
    • prefer-text-field
    • prefer-timestamptz
    • renaming-column
    • renaming-table
    • require-concurrent-index-creation
    • require-concurrent-index-deletion
    • transaction-nesting
    • ban-create-domain-with-constraint
    • ban-alter-domain-with-add-constraint
    • ban-truncate-cascade

Rules Overview

Squawk's rules focus on ensuring safe migrations and warn about statements that could block reads / writes or break existing clients. See the sidebar for documentation for each rule.

The rule docs should provide actionable, user friendly error messages. If you find a rule, error message, or docs page lacking, please open an issue.

Reminder

Read "Running Migrations to learn about safely applying migrations after linting.

index#

  • rules
  • adding-field-with-default
  • adding-foreign-key-constraint
  • adding-not-nullable-field
  • adding-required-field
  • adding-serial-primary-key-field
  • ban-char-field
  • ban-concurrent-index-creation-in-transaction
  • ban-drop-column
  • ban-drop-database
  • ban-drop-not-null
  • ban-drop-table
  • changing-column-type
  • constraint-missing-not-valid
  • disallowed-unique-constraint
  • prefer-bigint-over-int
  • prefer-bigint-over-smallint
  • prefer-identity
  • prefer-robust-stmts
  • prefer-text-field
  • prefer-timestamptz
  • renaming-column
  • renaming-table
  • require-concurrent-index-creation
  • require-concurrent-index-deletion
  • transaction-nesting
  • ban-create-domain-with-constraint
  • ban-alter-domain-with-add-constraint
  • ban-truncate-cascade
Edit this page
Previous
« Troubleshooting
Next
adding-field-with-default »
  • index

Docs

  • Quick Start
  • Rules

More

  • GitHub
  • Changelog
  • Help
Copyright © 2025 Squawk Authors.