Właśnie uczę się Phoenix i Elixir i pochodzę z Ruby / Rails, gdzie pracuję w REPL, używając pry
do 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 console
odpowiednik. 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 tę sekcję dokumentów ecto. Na tej podstawie mogę zrobić coś takiegoArticlesApi.Repo.all ArticlesApi.Article
elixir
phoenix-framework
ecto
iex
Chase Gilliam
źródło
źródło
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ćiex
sesję otwartą przez cały czas, zachowując aktywne aliasy.Odpowiedzi:
Możesz uruchomić,
iex -S mix
aby uruchomićiex
z zależnościami w obecnym projekcie miksu. Możesz przeczytać o tym na http://elixir-lang.org/getting-started/mix-otp/introduction-to-mix.htmlStamtąd możesz wykonywać zapytania Ecto:
Uruchomienie
iex -S mix phoenix.server
spowoduje również uruchomienie serwera phoenix.źródło
iex.exs
pliku 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
bin/my_app remote_console
w zdalnej powłoce.iex -S mix phx.server
od wersji Phoenix 1.3.Do debugowania wykonawczego, (jak
byebug
idebugger
czypry
w szynach), użyjrequire IEx
u góry modelu, kontrolera lub pliku widoków, a następnie wpiszIEx.pry
gdziekolwiek jest to potrzebne, aby zatrzymać się w czasie wykonywania i kontynuować debugowanie.Wpisz
h
pomoc w konsoliCo najważniejsze, po tym wszystkim zrestartuj serwer za pomocą:
iex -S mix phoenix.server
Więcej informacji: tutaj
źródło
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_console
aby otworzyć zdalną powłokę w konsoli aplikacji.źródło