Skip to main content
Use verify when a disposable PostgreSQL server is available and you want the strongest pre-merge proof. verify applies the before-state and migration twice in one temporary database, applies the target model in another, and compares the resulting fingerprints.

Use this when

  • Static checks passed but you want runtime proof.
  • A migration touches policies, grants, functions, or dependency-heavy objects.
  • CI can run a PostgreSQL service container.
  • A failed verify should leave databases behind for inspection.

Run it

The database URL must point at a PostgreSQL instance where the role can create temporary databases. When verification auto-discovers a local Supabase stack, it uses the built-in supabase_admin role so catalog replay can reproduce extensions and owner-scoped default privileges. Explicit URLs, named environments, and SUPASCHEMA_DATABASE_URL remain authoritative.

Flags

source
Before-state source. Defaults to config.sources.from.
source
Target source. Defaults to dir:<config.schemaPaths[0]>.
path
Migration SQL to apply twice. Defaults to the newest .sql file in the migrations directory.
path
Directory used to resolve the default migration file.
url
PostgreSQL admin URL. Also resolves from SUPASCHEMA_DATABASE_URL or Supabase local discovery.
boolean
Create missing NOLOGIN roles referenced by grants or policies.
boolean
Stub common Supabase-managed Auth, Vault, and cron surfaces.
boolean
Disable the Supabase environment stub when another command enabled it.
boolean
Keep temporary databases after failure and print their names.

Environment variables

Exit codes

Check

Run static safety checks first.

CI recipe

Add a disposable PostgreSQL service.

Supabase integration

Use environment and role stubs for Supabase trees.

Fingerprint

Understand the catalog equality hash.
Last modified on July 10, 2026