Есть ли в Phoenix эквивалент Rails Console?


94

Я только изучаю Phoenix и Elixir, и я исхожу из Ruby / Rails, где я работаю в REPL, используя pryдля проверки моей базы данных и состояния приложения.

Я пытаюсь понять, как взаимодействовать с моей базой данных и моделями в приложении Phoenix. Я знаю iex, но не знаю, как его использовать, проверьте базу данных моего приложения из ответа. Надо ли каждый раз подключаться к нему с ecto из репла? Есть rails consoleаналог. Я проверил документы Phoenix, Elixir Dose и репозиторий Ecto, но не могу найти то, что ищу. Я что-то упускаю?

Изменить: Основываясь на ответе ниже, я нашел этот раздел документов экто. На основе этого я могу сделать что-то вродеArticlesApi.Repo.all ArticlesApi.Article


2
Вы можете сэкономить набрав альясинг имен модулей: alias ArticlesApi.{Repo, Article}. Также имейте в виду, что вы можете очень удобно перекомпилировать отдельные модули из консоли ( r Article) или перекомпилировать весь проект, используя recompile. Это позволяет вам постоянно оставлять iexсеанс открытым, сохраняя псевдонимы активными.
hmans

Ответы:


122

Вы можете запустить iex -S mixдля запуска iexс включенными зависимостями в вашем текущем проекте микширования. Вы можете прочитать об этом на http://elixir-lang.org/getting-started/mix-otp/introduction-to-mix.html

Оттуда вы можете выполнять запросы Ecto:

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

Запуск iex -S mix phoenix.serverтакже запустит сервер Phoenix.


8
Также стоит отметить удобство iex.exsфайла в корне вашего проекта, чтобы вы могли настраивать псевдонимы (так что вам не нужно все предшествовать MyApp.). Примером может быть: alias MyApp.Repo alias MyApp.User alias MyApp.Car
Дэвид Кухта

2
Есть ли способ использовать это в производственной среде?
Chris.Zou

@ Chris.Zou Да, использовать bin/my_app remote_consoleв удаленной оболочке.
Ник Нилов

3
На самом деле это iex -S mix phx.serverначиная с Phoenix 1.3.
okay56k 03

27

Для отладки во время выполнения (например, byebugили debuggerили pryв рельсах) используйте

require IEx в верхней части файла модели, контроллера или представлений, затем введите

IEx.pry туда, где вам нужно, чтобы он остановился во время выполнения и продолжил отладку.

Введите hсправку в консоли

Самое главное, после всего этого перезагрузите сервер с помощью:

iex -S mix phoenix.server

Подробнее: здесь


4

Если вы работаете в разработке, используйте iex -S mix phx.server.

Если вам нужно войти в консоль развернутого выпуска, перейдите в каталог выпуска и запустите, bin/<name of your app> remote_consoleчтобы открыть удаленную оболочку для консоли вашего приложения.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.