Có Phoenix nào tương đương với Rails Console không


94

Tôi chỉ đang học Phoenix và Elixir và tôi đến từ Ruby / Rails, nơi tôi làm việc trong REPL sử dụng pryđể kiểm tra cơ sở dữ liệu và trạng thái ứng dụng của tôi.

Tôi đang cố gắng tìm ra cách tương tác với cơ sở dữ liệu và mô hình của mình trong ứng dụng Phoenix. Tôi biết iex, nhưng tôi không biết cách sử dụng nó để kiểm tra cơ sở dữ liệu của ứng dụng từ repl. Tôi có cần kết nối với nó với ecto mỗi lần từ repl không? Có rails consoletương đương không. Tôi đã kiểm tra tài liệu Phoenix, Elixir Dose và repo Ecto, nhưng không thể tìm thấy thứ tôi đang tìm. Tui bỏ lỡ điều gì vậy?

Chỉnh sửa: Dựa trên câu trả lời dưới đây tôi tìm thấy này phần của tài liệu ecto. Dựa trên điều này, tôi có thể làm điều gì đó nhưArticlesApi.Repo.all ArticlesApi.Article


2
Bạn có thể tiết kiệm một số cách gõ bằng răng cưa các tên mô-đun: alias ArticlesApi.{Repo, Article}. Ngoài ra, hãy nhớ rằng bạn có thể biên dịch lại các mô-đun riêng lẻ từ bảng điều khiển ( r Article) hoặc biên dịch lại toàn bộ dự án một cách thuận tiện recompile. Điều này cho phép bạn để một iexphiên mở mọi lúc, giữ bí danh luôn hoạt động.
hmans,

Câu trả lời:


121

Bạn có thể chạy iex -S mixđể chạy iexvới các phụ thuộc trong dự án kết hợp hiện tại của bạn được bao gồm .. Bạn có thể đọc về điều này tại http://elixir-lang.org/getting-started/mix-otp/introduction-to-mix.html

Từ đó, bạn có thể thực hiện các truy vấn Ecto:

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

Chạy iex -S mix phoenix.servercũng sẽ khởi động máy chủ phượng hoàng.


8
Cũng cần lưu ý đến sự tiện lợi của một iex.exstệp trong thư mục gốc của dự án cho phép bạn thiết lập bí danh (vì vậy bạn không cần phải đặt trước mọi thứ MyApp.). Một ví dụ sẽ là: alias MyApp.Repo alias MyApp.User alias MyApp.Car
David Kuhta

2
Có cách nào tôi có thể sử dụng điều này trong môi trường sản xuất không?
Chris.Zou

@ Chris.Zou Có, sử dụng bin/my_app remote_consoletrong trình bao từ xa của bạn.
Nic Nilov

3
Điều này thực sự là iex -S mix phx.serverkể từ Phoenix 1.3.
okay56k

27

Để gỡ lỗi thời gian chạy, (như byebughoặc debuggerhoặc prytrong đường ray), hãy sử dụng

require IEx ở đầu mô hình hoặc bộ điều khiển hoặc tệp chế độ xem của bạn, sau đó nhập

IEx.pry đến bất cứ nơi nào bạn cần, nó sẽ tạm dừng trong thời gian chạy và tiếp tục gỡ lỗi.

Nhập hđể được trợ giúp bên trong bảng điều khiển

Quan trọng nhất, sau tất cả, hãy khởi động lại máy chủ của bạn bằng:

iex -S mix phoenix.server

Thông tin thêm: tại đây


4

Nếu bạn đang làm việc trong lĩnh vực phát triển, hãy sử dụng iex -S mix phx.server.

Nếu bạn cần vào bảng điều khiển của một bản phát hành đã triển khai, thì hãy chuyển đến thư mục phát hành của bạn và chạy bin/<name of your app> remote_consoleđể mở trình bao từ xa cho bảng điều khiển của ứng dụng của bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.