Skip to content
AppClap
Ecto is unclaimed —

Ecto

A toolkit for data mapping and language integrated query for Elixir·ecto.hexdocs.pm

Visit

Ecto is a toolkit for data mapping and language-integrated querying in the Elixir programming language. It is split into four main components: Ecto.Repo (a wrapper around the data store for creating, updating, deleting and querying entries), Ecto.Schema (for mapping external data, such as database tables, into Elixir structs), Ecto.Query (a composable, secure query DSL written in Elixir syntax), and Ecto.Changeset (for tracking, casting and validating changes before they are applied to data). Most developers use Ecto together with the ecto_sql project to interact with SQL databases such as PostgreSQL and MySQL, including support for database migrations.

What it's for

Mapping database tables into Elixir structsWriting composable, secure queries against a databaseValidating and casting external data before persisting itManaging associations such as has_many, belongs_to, and many_to_manyWorking with embedded schemasRunning aggregates and subqueriesImplementing multi-tenancy via query prefixes or foreign keysBuilding dynamic queries at runtimePerforming upserts and handling database constraintsRunning schemaless queriesGrouping multiple repository operations with Ecto.MultiTesting with test factoriesVersioning database changes through migrations (via ecto_sql)

Features 19

  • Aggregate functions and subqueries
  • Changesets for filtering, casting, and validating data (Ecto.Changeset)
  • Composable, secure query DSL (Ecto.Query)
  • Constraint handling and upserts
  • Custom and parameterized types (Ecto.Type, Ecto.ParameterizedType)
  • Database migrations via the ecto_sql project
  • Dynamic queries and dynamic fragments
  • Dynamic repositories and database replicas
  • Ecto.Enum for mapping atoms to strings or integers
  • Ecto.Multi for grouping multiple repository operations into a transaction
  • Ecto.UUID type with UUIDv7 support
  • Embedded schemas (embeds_one, embeds_many)
  • Mix tasks for creating/dropping database storage and generating repositories
  • Multi-tenancy support via query prefixes and foreign keys
  • Repository pattern for CRUD operations (Ecto.Repo)
  • Schema mapping of external data into Elixir structs (Ecto.Schema)
  • Schemaless queries
  • Support for associations: has_many, has_one, belongs_to, many_to_many
  • Window functions API (Ecto.Query.WindowAPI)

At a glance

API
TypeLibrary / SDK
DeploymentInstalled (local)
Fordevelopers

Integrations

MySQLMyXQLPostgreSQLPostgrex

Resources

Similar apps

Last checked 1 month ago·