Estoy aprendiendo Phoenix y Elixir y vengo de Ruby / Rails, donde trabajo en REPL usando pry
para inspeccionar mi base de datos y el estado de la aplicación.
Estoy tratando de averiguar cómo interactuar con mi base de datos y modelos en una aplicación de Phoenix. Lo sé iex
, pero no sé cómo usarlo, inspeccione la base de datos de mi aplicación desde la respuesta. ¿Necesito conectarme a él con ecto cada vez desde la respuesta? ¿Existe un rails console
equivalente? Revisé los documentos de Phoenix, Elixir Dose y el repositorio de Ecto, pero no puedo encontrar lo que estoy buscando. ¿Me estoy perdiendo de algo?
Editar: Basado en la respuesta a continuación, encontré esta sección de los documentos ecto. Basado en esto puedo hacer algo comoArticlesApi.Repo.all ArticlesApi.Article
fuente
alias ArticlesApi.{Repo, Article}
. Además, tenga en cuenta que puede recompilar módulos individuales de manera muy conveniente desde su consola (r Article
), o recompilar todo el proyecto usandorecompile
. Esto le permite dejar unaiex
sesión abierta todo el tiempo, manteniendo los alias activos.Respuestas:
Puede ejecutar
iex -S mix
para ejecutariex
con las dependencias en su proyecto de mezcla actual incluidas. Puede leer sobre esto en http://elixir-lang.org/getting-started/mix-otp/introduction-to-mix.htmlDesde allí puede ejecutar consultas Ecto:
La ejecución
iex -S mix phoenix.server
también iniciará el servidor phoenix.fuente
iex.exs
archivo en la raíz de su proyecto para permitirle configurar alias (para que no tenga que preceder todo conMyApp.
). Un ejemplo sería:alias MyApp.Repo alias MyApp.User alias MyApp.Car
bin/my_app remote_console
en su shell remoto.iex -S mix phx.server
desde Phoenix 1.3.Para depurar el tiempo de ejecución, (como
byebug
odebugger
, opry
en carriles), el usorequire IEx
en la parte superior de su modelo o controlador o archivo de vistas, luego escribaIEx.pry
a donde lo necesite para detenerlo en tiempo de ejecución y continuar depurando.Escriba
h
para obtener ayuda dentro de la consolaLo más importante, después de todo eso, reinicie su servidor con:
iex -S mix phoenix.server
Más info: aquí
fuente
Si está trabajando en desarrollo, use
iex -S mix phx.server
.Si necesita acceder a la consola de una versión implementada, vaya a su directorio de versiones y ejecute
bin/<name of your app> remote_console
para abrir un shell remoto en la consola de su aplicación.fuente