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

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

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

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


person Chase    schedule 26.10.2015    source источник
comment
Вы можете сэкономить время на вводе, задав псевдонимы модулей: alias ArticlesApi.{Repo, Article}. Также имейте в виду, что вы можете очень удобно перекомпилировать отдельные модули из вашей консоли (r Article) или перекомпилировать весь проект, используя recompile. Это позволяет вам оставлять iex сеанс постоянно открытым, сохраняя псевдонимы активными.   -  person hmans    schedule 31.03.2017


Ответы (3)


Вы можете запустить 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 phx.server также запустит сервер Phoenix.

person Gazler    schedule 26.10.2015
comment
Также стоит отметить удобство использования iex.exs файла в корне вашего проекта, чтобы вы могли устанавливать псевдонимы (так что вам не нужно начинать все с MyApp.). Пример: alias MyApp.Repo alias MyApp.User alias MyApp.Car - person David Kuhta; 02.10.2016
comment
Есть ли способ использовать это в производственной среде? - person Chris.Zou; 05.11.2017
comment
@ Chris.Zou Да, используйте bin/my_app remote_console в своей удаленной оболочке. - person Nic Nilov; 20.08.2018
comment
На самом деле это iex -S mix phx.server начиная с Phoenix 1.3. - person okay56k; 03.12.2018

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

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

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

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

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

iex -S mix phoenix.server

Дополнительная информация: здесь

person Devaroop    schedule 06.06.2016

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

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

person Mark Wilbur    schedule 23.06.2018