क्या फीनिक्स रेल कंसोल के बराबर है


92

मैं सिर्फ फीनिक्स और अमृत सीख रहा हूं और मैं रूबी / रेल्स से आ रहा हूं, जहां मैं pryअपने डेटाबेस और एप्लिकेशन स्टेट का निरीक्षण करने के लिए REPL में काम करता हूं।

मैं फीनिक्स ऐप में अपने डेटाबेस और मॉडल के साथ बातचीत करने का तरीका जानने की कोशिश कर रहा हूं। मैं इससे अवगत हूं iex, लेकिन मुझे नहीं पता कि इसका उपयोग कैसे करना है, मेरे ऐप के डेटाबेस का उत्तर से निरीक्षण करें। क्या मुझे उत्तर से हर बार एक्टो के साथ जुड़ने की आवश्यकता है? क्या कोई rails consoleसमकक्ष है। मैंने फीनिक्स डॉक्स, एलिक्सिर डॉस और एक्टो रेपो की जांच की है, लेकिन मैं जो ढूंढ रहा हूं वह नहीं मिल सकता है। क्या मैं कुछ भूल रहा हूँ?

संपादित करें: नीचे दिए गए उत्तर के आधार पर मुझे एक्टो डॉक्स का यह खंड मिला । इसके आधार पर मैं कुछ ऐसा कर सकता हूंArticlesApi.Repo.all ArticlesApi.Article


2
आप मॉड्यूल के नामों को बदलकर कुछ टाइपिंग को बचा सकते हैं alias ArticlesApi.{Repo, Article}:। इसके अलावा, ध्यान रखें कि आप अपने कंसोल ( r Article) से अलग-अलग मॉड्यूल को आसानी से पुन: उपयोग कर सकते हैं , या पूरी परियोजना का उपयोग करके फिर से जोड़ सकते हैं recompile। यह आपको iexएलियास को सक्रिय रखते हुए हर समय एक सत्र खुला छोड़ने की अनुमति देता है।
हैमन्स

जवाबों:


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
डेविड कुहता

2
क्या कोई ऐसा तरीका है जो मैं उत्पादन वातावरण में इसका उपयोग कर सकता हूं?
21.18 पर क्रिस .Zou

@ Chris.Zou हाँ, bin/my_app remote_consoleअपने दूरस्थ शेल में उपयोग करें।
निक निलोव

3
यह वास्तव iex -S mix phx.serverमें फीनिक्स 1.3 के बाद से है।
OK56k

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अपने ऐप के कंसोल पर एक दूरस्थ शेल खोलने के लिए दौड़ें ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.