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 iex
, mais je ne sais pas comment l'utiliser inspecter la base de données de mon application à partir du repl. Dois-je me connecter avec ecto à chaque fois depuis le repl? Y a-t-il un rails console
équivalent. J'ai vérifié la documentation Phoenix, Elixir Dose et le repo 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é cette section de la documentation ecto. Sur cette base, je peux faire quelque chose commeArticlesApi.Repo.all ArticlesApi.Article
la source
alias ArticlesApi.{Repo, Article}
. Gardez également à l'esprit que vous pouvez très facilement recompiler des modules individuels à partir de votre console (r Article
), ou recompiler l'ensemble du projet à l'aide derecompile
. Cela vous permet de laisser uneiex
session ouverte tout le temps, en gardant les alias actifs.Réponses:
Vous pouvez exécuter
iex -S mix
pour exécuteriex
avec les dépendances dans votre projet de mixage actuel inclus. Vous pouvez lire à ce sujet à http://elixir-lang.org/getting-started/mix-otp/introduction-to-mix.htmlDe là, vous pouvez exécuter des requêtes Ecto:
L'exécution
iex -S mix phoenix.server
démarrera également le serveur phoenix.la source
iex.exs
fichier à la racine de votre projet pour vous permettre de configurer des alias (vous n'avez donc pas à tout faire précéderMyApp.
). Un exemple serait:alias MyApp.Repo alias MyApp.User alias MyApp.Car
bin/my_app remote_console
dans votre shell distant.iex -S mix phx.server
depuis Phoenix 1.3.Pour le débogage d'exécution, (comme
byebug
oudebugger
oupry
dans les rails), utilisezrequire IEx
en haut de votre fichier de modèle ou de contrôleur ou de vues, puis tapezIEx.pry
à l'endroit où vous en avez besoin pour s'arrêter au moment de l'exécution et continuer le débogage.Tapez
h
pour obtenir de l'aide dans la consolePlus important encore, après tout cela, redémarrez votre serveur avec:
iex -S mix phoenix.server
Plus d'infos: ici
la source
Si vous travaillez dans le développement, utilisez
iex -S mix phx.server
.Si vous avez besoin d'accéder à 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.la source