Estou aprendendo Phoenix e Elixir e venho de Ruby / Rails onde trabalho no REPL usando pry
para inspecionar meu banco de dados e o estado do aplicativo.
Estou tentando descobrir como interagir com meu banco de dados e modelos em um aplicativo Phoenix. Estou ciente iex
, mas não sei como usá-lo, inspecionar o banco de dados do meu aplicativo a partir do repl. Eu preciso me conectar a ele com ecto todas as vezes a partir do repl? Existe um rails console
equivalente. Verifiquei os documentos de Phoenix, Elixir Dose e o repositório Ecto, mas não consigo encontrar o que procuro. Estou esquecendo de algo?
Edit: Com base na resposta abaixo, encontrei esta seção dos documentos ecto. Com base nisso, posso fazer algo comoArticlesApi.Repo.all ArticlesApi.Article
fonte
alias ArticlesApi.{Repo, Article}
. Além disso, tenha em mente que você pode recompilar convenientemente módulos individuais de seu console (r Article
) ou recompilar todo o projeto usandorecompile
. Isso permite que você deixe umaiex
sessão aberta o tempo todo, mantendo os aliases ativos.Respostas:
Você pode executar
iex -S mix
para executariex
com as dependências em seu projeto mix atual incluídas. Você pode ler sobre isso em http://elixir-lang.org/getting-started/mix-otp/introduction-to-mix.htmlA partir daí, você pode executar consultas Ecto:
A execução
iex -S mix phoenix.server
também iniciará o servidor Phoenix.fonte
iex.exs
arquivo na raiz do seu projeto para permitir que você configure aliases (para que você não precise preceder tudo comMyApp.
). Um exemplo seria:alias MyApp.Repo alias MyApp.User alias MyApp.Car
bin/my_app remote_console
em seu shell remoto.iex -S mix phx.server
desde o Phoenix 1.3.Para depuração em tempo de execução, (como
byebug
oudebugger
oupry
em trilhos), userequire IEx
na parte superior do seu modelo ou controlador ou arquivo de visualizações, digiteIEx.pry
para onde você precisar que ele pare no tempo de execução e continue a depuração.Digite
h
para obter ajuda dentro do consoleMais importante, depois de tudo isso, reinicie seu servidor com:
iex -S mix phoenix.server
Mais informações: aqui
fonte
Se você estiver trabalhando em desenvolvimento, use
iex -S mix phx.server
.Se você precisar acessar o console de uma versão implantada, vá para o diretório de versão e execute
bin/<name of your app> remote_console
para abrir um shell remoto para o console do seu aplicativo.fonte