2015-10-26 14 views
70

Sto solo imparando Phoenix ed Elixir e vengo da Ruby/Rails dove lavoro nel REPL utilizzando pry per ispezionare il mio database e lo stato dell'applicazione.Esiste un equivalente Phoenix in Rails Console

che sto cercando di capire come interagire con il mio database e modelli in un'applicazione Phoenix. Sono a conoscenza di iex, ma non so come usarlo ispezionare il database della mia app dal repl. Devo connettermi ad esso con ecto ogni volta dal repl? Esiste un equivalente rails console. Ho controllato i documenti Phoenix, Elixir Dose e il repository Ecto, ma non riesco a trovare quello che sto cercando. Mi sto perdendo qualcosa?

Edit: Sulla base della risposta qui sotto ho trovato this sezione dei documenti ecto. Sulla base di questo non posso fare qualcosa di simile ArticlesApi.Repo.all ArticlesApi.Article

+2

è possibile risparmiare qualche digitazione tramite aliasing dei nomi dei moduli: 'alias ArticoliApi. {Repo, Articolo}'. Inoltre, tieni presente che puoi facilmente ricompilare singoli moduli dalla tua console ('r Articolo'), o ricompilare l'intero progetto usando 'ricompilare'. Questo ti permette di lasciare una sessione 'iex' sempre aperta, mantenendo attivi gli alias. – hmans

risposta

87

È possibile eseguire iex -S mix per eseguire iex con le dipendenze nel progetto mix corrente incluso .. Si può leggere su questo in http://elixir-lang.org/getting-started/mix-otp/introduction-to-mix.html

Da lì è possibile eseguire query Ecto:

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

Esecuzione iex -S mix phoenix.server inizierà anche il server fenice.

+4

Vale anche la pena notare la convenienza di un file 'iex.exs' nella radice del progetto per consentire di impostare alias (quindi non è necessario precedere tutto con' MyApp.). Un esempio potrebbe essere: 'alias MyApp.Repo alias MyApp.User alias MyApp.Car' –

+1

C'è un modo per poterlo utilizzare nell'ambiente di produzione? –

20

Per eseguire il debug di runtime, (come byebug o debugger o pry a rotaie), utilizzare

require IEx nella parte superiore del vostro modello o file di controller o punti di vista, quindi digitare

IEx.pry a tutto ciò che è a fermarsi in fase di esecuzione e continuare il debug.

Tipo h aiuto all'interno della console

più importante, dopo tutto questo, riavviare il server con:

iex -S mix phoenix.server

Maggiori informazioni: here

Problemi correlati