J'apprends juste Phoenix et Elixir et je viens de Ruby/Rails où je travaille dans le REPL en utilisant pry
pour inspecter ma base de données et l'état de l'application.
J'essaie de comprendre comment interagir avec ma base de données et mes modèles dans une application Phoenix. Je suis au courant de iex
, mais je ne sais pas comment l'utiliser. Inspectez la base de données de mon application à partir de la répl. Dois-je me connecter avec ecto à chaque fois de la répl? Y a t-il Rails console
équivalent. J'ai consulté les documents Phoenix, Elixir Dose et le dépôt Ecto, mais je ne trouve pas ce que je recherche. Est-ce que je manque quelque chose?
Edit: Basé sur la réponse ci-dessous, j'ai trouvé this section des documents ecto. Sur cette base, je peux faire quelque chose comme ArticlesApi.Repo.all ArticlesApi.Article
Tu peux courir iex -S mix
pour exécuter iex
avec les dépendances de votre projet de mixage actuel inclus. Vous pouvez en savoir plus à ce sujet sur http://elixir-lang.org/getting-started/mix-otp/introduction -to-mix.html
De là, vous pouvez exécuter des requêtes Ecto:
iex> MyApp.Repo.all(MyApp.User)
Fonctionnement iex -S mix phoenix.server
va également démarrer le serveur Phoenix.
Pour le débogage à l'exécution, (comme byebug
ou debugger
ou pry
dans Rails), utilisez
require IEx
en haut de votre modèle, de votre contrôleur ou de votre fichier de vues, puis tapez
IEx.pry
à l'endroit où vous en avez besoin pour vous arrêter au moment de l'exécution et poursuivre le débogage.
Tapez h
pour obtenir de l'aide à l'intérieur de la console
Après tout cela, redémarrez votre serveur avec:
iex -S mix phoenix.server
Plus d'infos: ici
Si vous travaillez dans le développement, utilisez iex -S mix phx.server
.
Si vous avez besoin de la console d’une version déployée, accédez à votre répertoire de version et exécutez bin/<name of your app> remote_console
pour ouvrir un shell distant sur la console de votre application.