# `mix pgflow.check_schema`
[🔗](https://github.com/agoodway/pgflow/blob/v0.4.0/lib/mix/tasks/pgflow.check_schema.ex#L1)

Verifies that the pgflow database schema exists and is compatible with
this version of the Elixir implementation.

## Usage

    mix pgflow.check_schema [options]

## Options

  * `--repo` - The Ecto repo to check. Default: reads from config

## Examples

    mix pgflow.check_schema
    mix pgflow.check_schema --repo MyApp.Repo

## What It Checks

  1. The `pgflow` schema and required tables exist
  2. Installed core and helpers versions meet the bundled minimums
  3. Required function signatures: four-argument `start_tasks/4`,
     `ensure_flow_compiled/2`, and no obsolete three-argument claim
  4. Queue identity constraints on `step_tasks` and `steps`
  5. Eight-field `step_task_record` layout including `attempts_count`
  6. Task status enum includes `skipped` and `cancelled`
  7. pgmq extension is available

See `docs/UPSTREAM_COMPATIBILITY.md` for the full contract.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
