Czy istnieje odpowiednik Phoenix w Rails Console?

94

Właśnie uczę się Phoenix i Elixir i pochodzę z Ruby / Rails, gdzie pracuję w REPL, używając prydo sprawdzania mojej bazy danych i stanu aplikacji.

Próbuję dowiedzieć się, jak współdziałać z moją bazą danych i modelami w aplikacji Phoenix. Jestem tego świadomy iex, ale nie wiem, jak go używać, sprawdź bazę danych mojej aplikacji z repliki. Czy za każdym razem muszę łączyć się z nim za pomocą ecto z repliki? Czy istnieje rails consoleodpowiednik. Sprawdziłem dokumentację Phoenix, dawkę eliksiru i repozytorium Ecto, ale nie mogę znaleźć tego, czego szukam. Czy coś mi brakuje?

Edycja: na podstawie odpowiedzi poniżej znalazłem sekcję dokumentów ecto. Na tej podstawie mogę zrobić coś takiegoArticlesApi.Repo.all ArticlesApi.Article

Chase Gilliam
źródło
2
Można zaoszczędzić trochę pisanie przez aliasing nazwy modułów: alias ArticlesApi.{Repo, Article}. Pamiętaj też, że możesz w bardzo wygodny sposób przekompilować poszczególne moduły z konsoli ( r Article) lub przekompilować cały projekt za pomocą recompile. Pozwala to pozostawić iexsesję otwartą przez cały czas, zachowując aktywne aliasy.
hmans

Odpowiedzi:

122

Możesz uruchomić, iex -S mixaby uruchomić iexz zależnościami w obecnym projekcie miksu. Możesz przeczytać o tym na http://elixir-lang.org/getting-started/mix-otp/introduction-to-mix.html

Stamtąd możesz wykonywać zapytania Ecto:

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

Uruchomienie iex -S mix phoenix.serverspowoduje również uruchomienie serwera phoenix.

Gazler
źródło
8
Warto również zwrócić uwagę na wygodę iex.exspliku w katalogu głównym projektu, aby umożliwić konfigurację aliasów (więc nie musisz wszystkiego poprzedzać MyApp.). Przykładem może być: alias MyApp.Repo alias MyApp.User alias MyApp.Car
David Kuhta
2
Czy jest sposób, w jaki mogę to wykorzystać w środowisku produkcyjnym?
Chris.Zou
@ Chris.Zou Tak, użyj bin/my_app remote_consolew zdalnej powłoce.
Nic Nilov,
3
Dzieje się tak iex -S mix phx.serverod wersji Phoenix 1.3.
56 tys.
27

Do debugowania wykonawczego, (jak byebugi debuggerczy pryw szynach), użyj

require IEx u góry modelu, kontrolera lub pliku widoków, a następnie wpisz

IEx.pry gdziekolwiek jest to potrzebne, aby zatrzymać się w czasie wykonywania i kontynuować debugowanie.

Wpisz hpomoc w konsoli

Co najważniejsze, po tym wszystkim zrestartuj serwer za pomocą:

iex -S mix phoenix.server

Więcej informacji: tutaj

Devaroop
źródło
4

Jeśli pracujesz w fazie rozwoju, użyj iex -S mix phx.server.

Jeśli potrzebujesz do konsoli wdrożonej wersji, przejdź do katalogu wersji i uruchom, bin/<name of your app> remote_consoleaby otworzyć zdalną powłokę w konsoli aplikacji.

Mark Wilbur
źródło