Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Elixir 有相当于Rails控制台的Phoenix吗_Elixir_Phoenix Framework_Ecto_Elixir Iex - Fatal编程技术网

Elixir 有相当于Rails控制台的Phoenix吗

Elixir 有相当于Rails控制台的Phoenix吗,elixir,phoenix-framework,ecto,elixir-iex,Elixir,Phoenix Framework,Ecto,Elixir Iex,我正在学习Phoenix和Elixir,我来自Ruby/Rails,在那里我在REPL工作,使用pry检查我的数据库和应用程序状态 我正试图找出如何在Phoenix应用程序中与我的数据库和模型交互。我知道iexiex,但我不知道如何使用它从repl检查我的应用程序的数据库。我是否需要每次从repl通过EXTO连接到它?是否有rails控制台等效设备。我已经查过凤凰城的文件,长生不老药的剂量,和异位反应,但找不到我要找的。我错过什么了吗 编辑:根据下面的答案,我找到了EXTO文档的一部分。基于此,

我正在学习Phoenix和Elixir,我来自Ruby/Rails,在那里我在REPL工作,使用
pry
检查我的数据库和应用程序状态

我正试图找出如何在Phoenix应用程序中与我的数据库和模型交互。我知道iex
iex
,但我不知道如何使用它从repl检查我的应用程序的数据库。我是否需要每次从repl通过EXTO连接到它?是否有
rails控制台
等效设备。我已经查过凤凰城的文件,长生不老药的剂量,和异位反应,但找不到我要找的。我错过什么了吗


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

的操作,您可以运行
iex-S mix
来运行
iex
,其中包括当前mix项目中的依赖项。。你可以在

从那里,您可以执行EXTO查询:

iex> MyApp.Repo.all(MyApp.User)
运行
iex-S mix phx.server
也将启动phoenix服务器。

对于运行时调试(如rails中的
byebug
debugger
pry
),使用

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

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

键入
h
以获取控制台内的帮助

最重要的是,在所有这些之后,使用以下命令重新启动服务器:

iex-S mix phoenix.server


更多信息:

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


如果您需要进入已部署版本的控制台,请转到您的发布目录并运行
bin/remote\u console
以打开应用程序控制台的远程shell。

还值得注意的是,项目根目录中的
iex.exs
文件方便您设置别名(因此,您不必在MyApp的所有内容之前添加
)例如:
alias MyApp.Repo alias MyApp.User alias MyApp.Car
有什么方法可以在生产环境中使用它吗?@Chris.Zou是的,在远程shell中使用
bin/my\u app remote\u console
。这实际上是自Phoenix 1.3以来的
iex-S mix phx.server
。您可以通过在模块名称中添加别名来节省键入的时间:ode>alias ArticlesApi.{Repo,Article}。另外,请记住,您可以非常方便地从控制台(
r Article
)重新编译单个模块,或者使用
recompile
重新编译整个项目。这允许您始终打开
iex
会话,保持别名处于活动状态。