Skip to main content
If you relied on atlas migrate lint for free migration-safety checks, that command moved behind Atlas Pro. This page lists free, Postgres-native alternatives and shows where supaschema fits.

What changed in Atlas

Starting with Atlas v0.38, the atlas migrate lint command is available only to Atlas Pro users, and the custom schema-policy linting rules are Pro-only as well. Atlas’s current pricing pages describe separate CLI seat, pipeline project, and target-database pricing. Confirm the current pricing page before quoting a number.
Last verified 2026-06-18 against the Atlas documentation. Pricing and feature gating are set by Atlas and can change; confirm the current terms on the Atlas site before quoting them.

Free alternatives at a glance

ToolLicenseMigration-safety scopeNeeds a database or Docker?
supaschemaFree core (open)Replay-safety + lock-hazard checks on generated migrations (check), a destructive-operation advisory in diff, and a free scan score with RLS-audit and least-privilege packsNo, generation and checks run from declarative SQL files
SquawkOpen source (MIT/Apache-2.0)Lock-safety linter for Postgres migration SQLNo
pgfenceSource-availableMigration-safety CLI: lock-mode analysis, risk scoring, and safe-rewrite recipesNo
Each tool is Postgres-native. None requires an Atlas Pro seat to run its free checks.

Where supaschema fits

supaschema generates migrations from declarative SQL and proves them before apply. The migration-safety checks that overlap with atlas migrate lint are in the free core:
  • supaschema check flags replay-safety and lock hazards on a generated migration (missing IF EXISTS/IF NOT EXISTS guards, table-rewriting ALTERs, CREATE INDEX CONCURRENTLY inside a transaction, and more), each as a SUPA_* diagnostic you can decode with supaschema explain <CODE>.
  • supaschema diff surfaces a lock-impact advisory on each destructive operation that will actually run.
  • supaschema scan produces a composite safety score with free RLS-audit and least-privilege packs.
supaschema diff      # render a replay-safe migration from declarative SQL
supaschema check     # replay-safety and lock-hazard diagnostics
supaschema scan      # composite safety score (RLS + lock-safety packs)
Destructive changes fail closed until you add the exact object key to hints.destructive after reviewing the rendered SQL, so a drop or a type change cannot land silently.

What is not free

supaschema is open-core. The migration-safety checks above are free. Grant and RLS safety also run through the free scan and deploy-safety gates. The current licensed standalone CLI gate is type-contract --enforce, which turns TypeScript/Zod breaking-change diagnostics into a failing command when a valid entitlement is present.

Choosing between them

  • You want Postgres migration-safety linting without a paid seat: use supaschema check, Squawk, or pgfence.
  • You generate migrations from declarative SQL and want the safety check in the same tool: use supaschema diff then supaschema check.
  • You already run the broader Atlas schema-as-code platform and want its hosted reporting: Atlas Pro is the paid path for that.

Supabase CLI comparison

How supaschema’s declarative diff compares to the Supabase CLI db diff workflow.

The check command

The replay-safety and lock-hazard diagnostics supaschema runs on every migration.

Sources

Last modified on June 18, 2026