98

我刚刚学习 Phoenix 和 Elixir,我来自 Ruby/Rails,我在 REPL 中工作,pry用于检查我的数据库和应用程序状态。

我试图弄清楚如何在 Phoenix 应用程序中与我的数据库和模型进行交互。我知道iex,但我不知道如何使用它从 repl 中检查我的应用程序的数据库。我是否需要每次从 repl 用 ecto 连接到它?有没有rails console等价的。我检查了 Phoenix 文档、Elixir Dose 和 Ecto repo,但找不到我要找的东西。我错过了什么吗?

编辑:根据下面的答案,我找到了 ecto 文档的这一部分。基于此,我可以做类似的事情ArticlesApi.Repo.all ArticlesApi.Article

4

4 回答 4

129

您可以运行包含当前混合项目中的依赖项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 server。

于 2015-10-26T15:26:00.793 回答
28

对于运行时调试(如byebugdebuggerpry在 rails 中),请使用

require IEx在模型或控制器或视图文件的顶部,然后键入

IEx.pry到任何你需要它在运行时停止并继续调试的地方。

h在控制台内输入帮助

最重要的是,毕竟,重新启动您的服务器:

iex -S mix phoenix.server

更多信息:这里

于 2016-06-06T10:56:43.263 回答
6

如果您从事开发工作,请使用iex -S mix phx.server.

如果您需要进入已部署版本的控制台,请转到您的发布目录并运行bin/<name of your app> remote_console以打开应用程序控制台的远程 shell。

于 2018-06-23T11:29:53.287 回答
0

对我来说,我想在我的 Elixir 测试中运行 pry。为此,您需要在mix test命令前加上iex - S

完全是这样的

iex -S mix test test/meta_api_web/pages/mutation/update/update_model_test.exs:270 
于 2021-11-18T16:44:19.707 回答