Ecto is unclaimed —
E
Ecto
A toolkit for data mapping and language integrated query for Elixir·ecto.hexdocs.pm
Ecto is a toolkit for data mapping and language-integrated querying in the Elixir programming language. It provides a query DSL (Ecto.Query), schemas that map external data into Elixir structs, changesets for casting, filtering, validating and applying constraints to data, and repositories (Ecto.Repo) for interacting with a database. It also ships Mix tasks for creating, dropping, and generating repositories.
What it's for
Basic CRUD operationsManaging associations between schemasAggregates and subqueriesHandling constraints and upsertsData mapping and validationWorking with duration types via PostgrexBuilding dynamic queriesUsing embedded schemasMulti tenancy with query prefixesMulti tenancy with foreign keysSelf-referencing many to many associationsPolymorphic associations with many to manyUsing replicas and dynamic repositoriesSchemaless queriesBuilding test factoriesTesting with Ecto
Features 17
- Adapter specification (Ecto.Adapter and related behaviours) for building database adapters
- Changesets for casting, filtering, and validating data
- Dedicated exception types (e.g. Ecto.CastError, Ecto.NoResultsError, Ecto.StaleEntryError)
- Ecto.Enum custom type mapping atoms to strings or integers
- Ecto.Multi for grouping multiple repository operations
- Ecto.ParameterizedType for per-field customizable types
- Ecto.Query.API listing allowed query functions
- Ecto.Query.WindowAPI for window functions
- Ecto.Queryable protocol for converting data structures into queries
- Ecto.Repo for defining and interacting with a repository
- Ecto.Schema for mapping external data into Elixir structs
- Ecto.Schema.Metadata for storing struct metadata
- Ecto.SubQuery struct representing subqueries
- Ecto.UUID type for UUID strings
- Mix tasks: mix ecto, mix ecto.create, mix ecto.drop, mix ecto.gen.repo
- Query DSL for composing database queries (Ecto.Query)
- Relation structs for belongs_to, has_one/has_many, has_one/has_many through, many_to_many, and embeds
At a glance
API
TypeLibrary / SDK
Resources