मैं एक प्लगइन मैं लिख रहा हूँ के लिए एक प्रवास जनरेटर लिख रहा हूँ और मैं क्या अद्वितीय अनुक्रमित एक मेज तो मैं एक समग्र अद्वितीय सूचकांक बनने के लिए मौजूदा अद्वितीय अनुक्रमणिका को संशोधित कर सकते है खोजने के लिए सक्षम होना चाहिए। मैं ActiveRecord के साथ तालिका में मौजूद इंडेक्स को एक्सेस करने का तरीका खोजने का प्रयास कर रहा हूं। मैं केवल ActiveRecord :: ConnectionAdapters :: PostgreSQLAdapter :: अनुक्रमित विधि को खोजने के लिए सक्षम किया गया है, लेकिन दुर्भाग्य से इस PosgreSQLAdapter के लिए ही उपलब्ध है। मुझे अन्य प्रमुख डेटाबेस का समर्थन करने में सक्षम होना चाहिए।ActiveRecord खोजने मौजूदा तालिका अनुक्रमित
मैं पहली बार schema.rb फ़ाइल grepping अनुक्रमित लगाने के लिए, यह पहली बार में काम किया, लेकिन मैं जल्द ही महसूस किया कि यह एक बुरा रणनीति थी।
मैं सोच रहा था कि यदि ActiveRecord एकाधिक डेटाबेस एडेप्टर के लिए ऐसा करने में सक्षम होने का माध्यम प्रदान नहीं करता है, तो मैं तालिका से अनुक्रमणिका जानकारी पुनर्प्राप्त करने के लिए एडाप्टर विशिष्ट क्वेरी लिखने में सक्षम हो सकता हूं। मैं इस विधि का सहारा लेना की जरूरत है क्या उपयोग में एडाप्टर निर्धारित करने के लिए एक अच्छा तरीका हो सकता है?
कोई ActiveRecord तालिका सूचकांक जानकारी है कि आदर्श होगा सूचीबद्ध करने के लिए पाने के लिए एक तरीका है जानता है।
एक ही रास्ता मैं अभी ऐसा करने के लिए सोच सकते हैं की मदद से है ActiveRecord :: SchemaDumper.dump समस्या यह है कि इस $ stdout के लिए वर्तमान स्कीमा उदासीनता और मुझे लगता है कि कब्जा करने के लिए पता नहीं कैसे और है आउटपुट को एक स्ट्रिंग में कनवर्ट करें। तो मुझे लगता है कि पता था, मैं schema.rb पढ़ने का मेरा पहला दृष्टिकोण से कोड का उपयोग करने में सक्षम होगा। किसी को भी पता है कि ब्लॉक में लिखे गए किसी चीज़ के लिए $ stdout कैप्चर कैसे करें? उदाहरण के लिए यह काम नहीं करता है: schema_str = IO :: open (2) {ActiveRecord :: SchemaDumper.dump} .read –
मुझे एहसास है कि यह प्रश्न प्राचीन है, लेकिन मेरे पास स्कीमाडम्पर को डंप करने की कोशिश करने का एक ही मुद्दा था एक स्ट्रिंग। मुझे अंततः उत्तर मिला, और अगर किसी और के पास यह समस्या है तो मैं इसे पोस्ट करूंगा: 'schema_rb_as_string = ActiveRecord :: SchemaDumper.dump (ActiveRecord :: Base.connection, StringIO.new) .स्ट्रिंग – MothOnMars