AshPostgres supports all the capabilities of an Ash data layer. AshPostgres is the primary Ash data layer.
Custom Predicates:
AshPostgres.Predicates.Trigram
See the DSL documentation in AshPostgres.DataLayer
for DSL documentation
Add ash_postgres
to your mix.exs
file.
{:ash_postgres, "~> 1.3.6"}
To use this data layer, you need to chage your Ecto Repo's from use Ecto.Repo
,
to use AshPostgres.Repo
. because AshPostgres adds functionality to Ecto Repos.
Then, configure each of your Ash.Resource
resources by adding use Ash.Resource, data_layer: AshPostgres.DataLayer
like so:
defmodule MyApp.SomeResource do
use Ash.Resource, data_layer: AshPostgres.DataLayer
postgres do
repo MyApp.Repo
table "table_name"
end
attributes do
# ... Attribute definitions
end
end
See the documentation for Mix.Tasks.AshPostgres.GenerateMigrations
for how to generate
migrations from your resources
Ash is made possible by its excellent community!