Temos a página de configuração nesse link. Mas farei a configuração por aqui também. Primeiro precisamos instalar as dependências
ecto_sql -> Wrapper do banco de dados
postgrex -> Adaptador do Ecto para Postgress
Adicione a suas dependencias os dois.
mix.exs
defmoduleCoffeeShop.MixProjectdouseMix.Projectdefprojectdo [ app: :coffee_shop, version: "0.1.0", elixir: "~> 1.15", start_permanent: Mix.env() == :prod, deps: deps() ]end# Run "mix help compile.app" to learn about applications.defapplicationdo [ extra_applications: [:logger], mod: {CoffeeShop.Application, []} ]end# Run "mix help deps" to learn about dependencies.defpdepsdo [ {:tesla,"~> 1.4"}, {:bypass,"~> 2.1"}, {:ecto_sql,"~> 3.0"}, {:postgrex,">= 0.0.0"} ]endend
Depois basta gerir as dependências
Feito isso, vamos a configuração
Quando instalamos Ecto, ganhamos também alguns geradores que vão nos auxiliar. O comando irá gerar a configuração necessária para nos conectar ao banco de dados.
Ele gerou o arquivo lib/coffee_shop/repo.ex com a configuração para o banco de dados. Também foi adicionadm em config/config.exs a configuração de acesso ao banco. E por fim, nos avisou que precisamos fazer duas coisas:
Adicionar ao supervisor de nossa aplicação o módulo criado CoffeeShop.Repo
Adicionar a configuraçãao emconfig/config.exs
Vamos adicionar o supevisor do Ecto ao supervisor de nossa aplicação. Abra lib/coffee_shop/application.ex que criamos para dar suporte a árvore de supervisor e adicione o módulo Repo a lista children.
Com isso temos o Repo como filho de nosso supervisor.
Agora vamos finalizar a configuração, adicionando a configuração de nosso repositório ecto em config/confg.exs
Adicionado a linha 3, temos tudo configurado.
A configuração da linha 6 vai depender de como você configurou seu banco de dados.
Feito isso, temos o Ecto configurado para nosso banco de dados. Agora vamos criar nosso banco. Tendo a adição do Ecto ao projeto, podemos simplesmente criar nosso banco usando o comando
Nossa aplicação tem suporte a banco de dados postgres. Matamos então mais um passo
> mix ecto.gen.repo -r CoffeeShop.Repo
* creating lib/coffee_shop
* creating lib/coffee_shop/repo.ex
* creating config/config.exs
Don't forget to add your new repo to your supervision tree
(typically in lib/coffee_shop/application.ex):
def start(_type, _args) do
children = [
CoffeeShop.Repo,
]
And to add it to the list of Ecto repositories in your
configuration files (so Ecto tasks work as expected):
config :coffee_shop,
ecto_repos: [CoffeeShop.Repo]
lib/coffee_shop/application.ex
defmodule CoffeeShop.Application do
use Application
def start(_type, _args) do
children = [
CoffeeShop.Repo
]
opts = [strategy: :one_for_one, name: CoffeeShop.Supervisor]
Supervisor.start_link(children, opts)
end
end