Railsコンソールに相当するフェニックスはありますか


92

私は、PhoenixとElixirを学んでいます。Ruby/ Railsから来て、REPLでpryデータベースとアプリケーションの状態を検査しています。

私はフェニックスアプリでデータベースとモデルを操作する方法を理解しようとしています。私は知っていますがiex、それを使用してアプリのデータベースをreplから検査する方法がわかりません。replから毎回ectoでそれに接続する必要がありますか?rails console同等のものはありますか?フェニックスのドキュメント、Elixir Dose、およびEctoリポジトリを確認しましたが、探しているものが見つかりません。何か不足していますか?

編集:以下の回答に基づいて、私は外部ドキュメントのこのセクションを見つけました。これに基づいて私は次のようなことができますArticlesApi.Repo.all ArticlesApi.Article


2
モジュール名にエイリアスを付けることで、いくつかの入力を節約できますalias ArticlesApi.{Repo, Article}。また、コンソールから個々のモジュールを非常に便利に再コンパイル(r Article)したり、を使用してプロジェクト全体を再コンパイルしたりできることにも注意してくださいrecompile。これにより、iexセッションを常に開いたままにして、エイリアスをアクティブに保つことができます。
hmans 2017年

回答:


120

あなたが実行することができます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すると、フェニックスサーバーも起動します。


8
またiex.exs、プロジェクトのルートにあるファイルを使用すると、エイリアスを設定できるので便利です(したがって、すべての前にを付ける必要はありませんMyApp.)。例は次のようになります alias MyApp.Repo alias MyApp.User alias MyApp.Car
デヴィッドKuhta

2
これを運用環境で使用する方法はありますか?
Chris.Zou 2017年

@ Chris.Zouはい、bin/my_app remote_consoleリモートシェルで使用します。
Nic Nilov

3
これは実際にiex -S mix phx.serverはフェニックス1.3以降です。
okay56k 2018

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し、アプリのコンソールへのリモートシェルを開きます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.