2012-01-17 10 views
7

मैं एक रेल अनुप्रयोग से एक MySQL डेटाबेस में SQL क्वेरी निष्पादित कैसे कर सकता हूं?मॉडल के बिना रेल ऐप से MySQL डेटाबेस से मैं कैसे क्वेरी कर सकता हूं?

मेरा एप्लिकेशन पोस्टग्रेज़ को प्राथमिक डेटाबेस के रूप में उपयोग करता है, लेकिन मुझे माध्यमिक MySQL डेटाबेस से कुछ जानकारी पढ़ने की आवश्यकता है। मैं मॉडल नहीं बना सकता क्योंकि MySQL डेटाबेस में 100 से अधिक टेबल हैं, जिन्हें प्रत्येक तालिका के लिए एक असंगत तरीके से नामित किया गया है। क्या इसे ActiveRecord या किसी अन्य तरीके से किया जा सकता है?

+0

रेल 'set_table_name "foo" 'का उपयोग करके किसी विशेष मॉडल के लिए तालिका नामों को मजबूर करने का समर्थन करता है। यदि तालिकाओं की संख्या स्थिर है और यह संभावना है कि आप उनका उपयोग करेंगे, तो मैं आवश्यक क्रम में मॉडल बनाने शुरू कर दूंगा। प्राथमिक कुंजी फ़ील्ड निर्दिष्ट करने के लिए एआर: बेस में भी समर्थन है। – Nick

उत्तर

13

आप सीधे mysql2 मणि ​​का उपयोग कर सकते हैं। https://github.com/brianmario/mysql2

या::

आप इस तरह MysqlConnection की तरह एक नया वर्ग बना सकते हैं: दस्तावेज़ यहां पढ़ें,

class MysqlConnection < ActiveRecord::Base 
    self.establish_connection(:adapter => 'mysql', :database => 'some-database-name') # Set all the other required params like host, user-name, etc 
end 

अब से आप कर सकते हैं,

MysqlConnection.connection.select_all("SELECT * FROM table_name") 

डेटाबेस.आईएमएल में कॉन्फ़िगरेशन विवरण को संग्रहीत करने के तरीके को समझने के लिए लिंक का पालन करें: http://weare.buildingsky.net/2006/12/06/multiple-concurrent-database-connections-with-activerecord

+0

आपके उत्तर के लिए धन्यवाद! यह मेरे लिए सबसे अच्छा समाधान है। – Alve

संबंधित मुद्दे

 संबंधित मुद्दे