Ecto
Ecto is the database wrapper and query generator for Elixir.
Ecto vs. Absinthe?
- Ecto is a library for interacting with databases.
- Absinthe is a library for building GraphQL APIs
https://hexdocs.pm/ecto/getting-started.html
defmodule Friends.Person do
  use Ecto.Schema
 
  schema "people" do
    field :first_name, :string
    field :last_name, :string
    field :age, :integer
  end
end- In this case, we’re telling Ecto that the Friends.Personschema maps to the people table in the database
This new code will tell Ecto to create a new table called people, and add three new fields: first_name, last_name and age to that table. The types of these fields are string and integer.
inserting data is like this
person = %Friends.Person{}
Friends.Repo.insert(person)In Ecto, you may wish to validate changes before they go to the database. For instance, you may wish that a person has both a first name and a last name before a record can be entered into the database.
Ecto.Changeset
Changesets allow filtering, casting, validation and definition of constraints when manipulating structs.
Ecto.Repo
A repository maps to an underlying data store, controlled by the adapter. For example, Ecto ships with a Postgres adapter that stores data into a PostgreSQL database.