# `AshPostgres.Type`
[🔗](https://github.com/ash-project/ash_postgres/blob/v2.8.0/lib/type.ex#L5)

Postgres specific callbacks for `Ash.Type`.

Use this in addition to `Ash.Type`.

# `migration_type`
*optional* 

```elixir
@callback migration_type(Ash.Type.constraints()) :: term()
```

# `postgres_reference_expr`
*optional* 

```elixir
@callback postgres_reference_expr(Ash.Type.t(), Ash.Type.constraints(), term()) ::
  {:ok, term()} | :error
```

# `value_to_postgres_default`
*optional* 

```elixir
@callback value_to_postgres_default(Ash.Type.t(), Ash.Type.constraints(), term()) ::
  {:ok, String.t()} | :error
```

---

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