जब मैं कंसोल में क्वेरी चलाता हूं (उदा। MyModel.where(...)
या record.associated_things
), मैं वास्तविक डेटाबेस क्वेरी कैसे चला सकता हूं ताकि मैं क्या हो रहा है, इसके बारे में और समझ सकूं?रेल कंसोल में चलने वाले SQL क्वेरी कैसे दिखाएं?
उत्तर
कंसोल में इस लाइन दर्ज करें:
ActiveRecord::Base.logger = Logger.new(STDOUT)
बिल्कुल सही , मुझे जिस चीज की जरूरत थी। क्या कोई सिफारिश है कि इन्हें छोटी सी चालें कहां मिलेंगी? – randombits
निश्चित रूप से। http://slash7.com/2006/12/21/secrets-of-the-rails-console-ninjas/ और http://stackoverflow.com/questions/123494/whats-your-favourite-irb-trick Plus http : //railscasts.com/ हमेशा अच्छा है। –
यह रेल 3+ के लिए काम करता है लेकिन 2 नहीं, http://stackoverflow.com/a/1576221 देखें यदि आप अभी भी हैं :) – rogerdpack
तदर्थ कंसोल में ActiveRecord प्रश्नों हालांकि नहीं है। वैसे भी उस व्यवहार को बदलें?
क्या आप इसके बारे में निश्चित हैं? मैं इस तरह की चीजों के लिए हर समय कंसोल का उपयोग करता हूं। विकास पर्यावरण के लिए, डिफ़ॉल्ट व्यवहार विकास.लॉग पर प्रश्नों को लॉग करना है। क्या आप वाकई अपने पर्यावरण में अपना लॉग स्तर नहीं बदल चुके हैं?
क्या आप विकास.आरबी में निम्नलिखित देखते हैं?
config.log_level = :debug
रेल में 3+ आप ActiveRecord :: रिलेशन के to_sql
विधि का उपयोग कर सकते हैं:
User.where(:id => 3).to_sql
#=> "SELECT \"users\".* FROM \"users\" WHERE \"users\".\"id\" = 3"
, रेल में एक .explain
विधि 4.
(.to_sql
भी काम करता है नहीं है, लेकिन वह दिखाई नहीं देगा शामिल)
Category.includes(:products).explain
=> EXPLAIN for: SELECT "categories".* FROM "categories" 0|0|0|SCAN TABLE categories
EXPLAIN for: SELECT "categories_products".* FROM "categories_products" WHERE "categories_products"."category_id" IN (1, 2) 0|0|0|SCAN TABLE categories_products
EXPLAIN for: SELECT "products".* FROM "products" WHERE "products"."id" IN (1, 2, 3, 4, 5, 6, 7) 0|0|0|SEARCH TABLE products USING INTEGER PRIMARY KEY (rowid=?) 0|0|0|EXECUTE LIST SUBQUERY 1
हाल ही में से रूप में, आप इस का उपयोग कर सकते हैं:
https://github.com/dejan/rails_panel
यह ऐड-ऑन क्रोम के लिए, और मणि फ़ाइल जो इस तरह अपने आवेदन की Gemfile के लिए जोड़ा जा करने की जरूरत है डेवलपर कंसोल पैनल के होते हैं:
group :development do
gem 'meta_request'
end
फिर चलाएँ:
bundle install
अपने एप्लिकेशन को पुनरारंभ करें, इसे खोलें, और डेवलपर कंसोल लॉन्च करें, और आपको इसे इस तरह देखना चाहिए:
- 1. ग्रहण - चलने वाले प्रोग्राम देशी ग्रहण कंसोल में नहीं हैं
- 2. संदेश बॉक्स में sql क्वेरी द्वारा मुद्रित मूल्य कैसे दिखाएं
- 3. लंबे समय से चलने वाले ओरेकल डीबी क्वेरी का सिमुलेशन
- 4. PostgreSQL क्वेरी में पंक्ति संख्या कैसे दिखाएं?
- 5. एक वीपीएस स्लाइस पर चलने वाले रेल पर रूबी
- 6. एचटीएमएल 5 में चिकना चलने वाले sprites
- 7. हाइबरनेट और शुष्क चलने वाले एचक्यूएल प्रश्न स्थिर रूप से
- 8. Development.log लॉग फ़ाइल प्रवेश करने नहीं है रेल SQL क्वेरी
- 9. गणित में समानांतर चलने वाले कितने कर्नल?
- 10. रेल 3 initializers केवल `रेल server` और नहीं` रेल generate` पर चलने वाले, आदि
- 11. क्रोम विकास कंसोल में केवल त्रुटियां दिखाएं
- 12. रेल कंसोल
- 13. रेल 3 irb कंसोल बनाम रेल कंसोल?
- 14. कैसे SQL क्वेरी
- 15. रेल कंसोल के साथ कंसोल?
- 16. SQL क्वेरी
- 17. रेल कंसोल
- 18. SQL क्वेरी
- 19. रेल कंसोल
- 20. वहाँ रेल कंसोल
- 21. हमेशा SQL में दशमलव स्थान दिखाएं?
- 22. रेल - लॉग फ़ाइलों में उत्पन्न SQL क्वेरी देखें
- 23. SQL क्वेरी
- 24. SQL क्वेरी
- 25. SQL क्वेरी
- 26. SQL क्वेरी
- 27. SQL क्वेरी
- 28. SQL क्वेरी
- 29. एक फ्लास्क चलने वाले वेब एप्लिकेशन
- 30. घोंसला वाले कार्यों पर चलने वाले यूनिट परीक्षण
एंड्रयू, यदि आप broweser में आदेश को चलाने के लिए भी जरूरत है आप उपयोग कर सकते https://github.com/igorkasyanchuk/rails_db –
भी देखें इस उत्तर: http://stackoverflow.com/a/1576221/446106 – mwfearnley