Я только изучаю Phoenix и Elixir, и я исхожу из Ruby / Rails, где я работаю в REPL, используя pry
для проверки моей базы данных и состояния приложения.
Я пытаюсь понять, как взаимодействовать с моей базой данных и моделями в приложении Phoenix. Я знаю iex
, но не знаю, как его использовать, проверьте базу данных моего приложения из ответа. Надо ли каждый раз подключаться к нему с ecto из репла? Есть rails console
аналог. Я проверил документы Phoenix, Elixir Dose и репозиторий Ecto, но не могу найти то, что ищу. Я что-то упускаю?
Изменить: Основываясь на ответе ниже, я нашел этот раздел документов экто. На основе этого я могу сделать что-то вродеArticlesApi.Repo.all ArticlesApi.Article
elixir
phoenix-framework
ecto
iex
Чейз Гиллиам
источник
источник
alias ArticlesApi.{Repo, Article}
. Также имейте в виду, что вы можете очень удобно перекомпилировать отдельные модули из консоли (r Article
) или перекомпилировать весь проект, используяrecompile
. Это позволяет вам постоянно оставлятьiex
сеанс открытым, сохраняя псевдонимы активными.Ответы:
Вы можете запустить
iex -S mix
для запускаiex
с включенными зависимостями в вашем текущем проекте микширования. Вы можете прочитать об этом на http://elixir-lang.org/getting-started/mix-otp/introduction-to-mix.htmlОттуда вы можете выполнять запросы Ecto:
Запуск
iex -S mix phoenix.server
также запустит сервер Phoenix.источник
iex.exs
файла в корне вашего проекта, чтобы вы могли настраивать псевдонимы (так что вам не нужно все предшествоватьMyApp.
). Примером может быть:alias MyApp.Repo alias MyApp.User alias MyApp.Car
bin/my_app remote_console
в удаленной оболочке.iex -S mix phx.server
начиная с Phoenix 1.3.Для отладки во время выполнения (например,
byebug
илиdebugger
илиpry
в рельсах) используйтеrequire IEx
в верхней части файла модели, контроллера или представлений, затем введитеIEx.pry
туда, где вам нужно, чтобы он остановился во время выполнения и продолжил отладку.Введите
h
справку в консолиСамое главное, после всего этого перезагрузите сервер с помощью:
iex -S mix phoenix.server
Подробнее: здесь
источник
Если вы работаете в разработке, используйте
iex -S mix phx.server
.Если вам нужно войти в консоль развернутого выпуска, перейдите в каталог выпуска и запустите,
bin/<name of your app> remote_console
чтобы открыть удаленную оболочку для консоли вашего приложения.источник