# `Exograph.Postgres`
[🔗](https://github.com/elixir-vibe/exograph/blob/v0.2.0/lib/exograph/postgres.ex#L1)

Ecto/Postgres helpers for the durable Exograph backend.

Relational storage is created through Ecto migrations. Raw SQL is reserved for
Postgres extensions and ParadeDB's BM25 index, which Ecto migrations do not
model directly.

# `backend_opts`

```elixir
@type backend_opts() :: [repo: repo(), prefix: String.t(), bm25?: boolean()]
```

# `repo`

```elixir
@type repo() :: module()
```

# `migrate!`

```elixir
@spec migrate!(backend_opts()) :: :ok
```

Creates or upgrades the Exograph Postgres schema.

Options:

  * `:repo` - an Ecto repo module (required)
  * `:prefix` - table-name prefix, defaults to `"exograph"`
  * `:bm25?` - create a ParadeDB BM25 index when `pg_search` is available,
    defaults to `true`

---

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