2015-10-26 6 views
70

Ich lerne gerade Phoenix und Elixir und komme aus Ruby/Rails, wo ich in der REPL mit pry arbeite, um meinen Datenbank- und Anwendungsstatus zu überprüfen.Gibt es ein Phoenix-Äquivalent zur Rails-Konsole?

Ich versuche herauszufinden, wie man mit meiner Datenbank und Modellen in einer Phoenix App interagieren kann. Ich bin mir bewusst, iex, aber ich weiß nicht, wie es zu verwenden, überprüfen Sie die App-Datenbank von der Repl. Muss ich jedes Mal mit dem ecto verbinden? Gibt es eine rails console Entsprechung? Ich habe die Dokumente von Phoenix, Elixir Dose und das Ecto-Repo überprüft, kann aber nicht finden, wonach ich suche. Fehle ich etwas?

Edit: Basierend auf der Antwort unten fand ich this Abschnitt der Ecto-Dokumente. Auf dieser Grundlage kann ich so etwas wie ArticlesApi.Repo.all ArticlesApi.Article

+2

Sie Tipparbeit sparen können durch Aliasing der Modulnamen: 'alias ArticlesApi. {Repo, Article}'. Denken Sie auch daran, dass Sie sehr einfach einzelne Module von Ihrer Konsole aus neu kompilieren können ('r Article'), oder kompilieren Sie das gesamte Projekt mit' rekompilieren'. Auf diese Weise können Sie eine 'iex'-Sitzung die ganze Zeit geöffnet lassen und Aliase aktiv halten. – hmans

Antwort

87

Sie iex -S mix ausführen können iex mit den Abhängigkeiten in Ihrem aktuellen Mix-Projekt auszuführen enthalten .. Sie diesen lesen kann bei http://elixir-lang.org/getting-started/mix-otp/introduction-to-mix.html

Vom Ihnen Ecto-Abfragen ausführen können:

iex> MyApp.Repo.all(MyApp.User) 

Der laufende iex -S mix phoenix.server startet auch den Phoenix-Server.

+4

Es ist auch erwähnenswert, eine 'iex.exs'-Datei im Stammverzeichnis Ihres Projekts zu verwenden, damit Sie Aliase einrichten können (Sie müssen also nicht alles mit' MyApp.' voranstellen). Ein Beispiel wäre: 'alias MyApp.Repo alias MyApp.User alias MyApp.Car' –

+1

Gibt es eine Möglichkeit, die ich in der Produktionsumgebung verwenden kann? –

20

Für Runtime-Debugging, (wie byebug oder debugger oder pry in Schienen), verwenden

require IEx an der Spitze des Modells oder Controller oder Ansichten Datei, geben Sie dann

IEx.pry zu, wo immer Sie es brauchen Halte zur Laufzeit an und setze das Debugging fort.

Typ h für Hilfe in der Konsole

Am wichtigsten ist, nach all dem, starten Sie den Server mit:

iex -S mix phoenix.server

Weitere Informationen: here

Verwandte Themen