तो मैं अपने config/database.yml
पर एक बाहरी डेटाबेस जोड़ने में सक्षम होना चाहता हूं, फिर उससे एक तालिका का मॉडल करें।रेल बाहरी डेटाबेस कॉल कैसे करें?
क्या यह संभव है? मैं यह समझने में सक्षम नहीं हूं कि कैसे।
"विभिन्न मॉडलों
कनेक्शन आमतौर पर ActiveRecord::Base.connection
द्वारा ActiveRecord::Base.establish_connection
के माध्यम से बनाया जाता है और प्राप्त किया गया। ActiveRecord::Base
से इनहेरिट सभी वर्गों इस कनेक्शन का उपयोग होगा। लेकिन क्या आप भी एक वर्ग विशेष के संबंध स्थापित कर सकते हैं में विभिन्न डेटाबेस के लिए कनेक्शन। उदाहरण के लिए , अगर Course
एक ActiveRecord::Base
है, लेकिन एक अलग डेटाबेस में रहता है, तो आप सिर्फ यह कह सकते हैं Course.establish_connection
और Course
और उसके उपवर्गों के सभी बजाय इस कनेक्शन का उपयोग होगा।
यह सुविधा लागू किया गया है एक कनेक्शन रखकर ActiveRecord::Base
में पूल जो कक्षा द्वारा अनुक्रमित हैश है। यदि किसी कनेक्शन से अनुरोध किया जाता है, तो कनेक्शन पूल में कनेक्शन मिलने तक पुनर्प्राप्ति_कनेक्शन विधि क्लास-पदानुक्रम तक बढ़ जाएगी। तब
my_external_db:
adapter: mysql
username: ...
....
, मॉडल बनाने और इसे बाहरी डाटाबेस
class MyExternalModel < ActiveRecord::Base
establish_connection(:my_external_db)
set_table_name 'my_external_table'
end
क्या मुझे बाद में कनेक्शन बंद करना होगा? – Kirby
@ किर्बी: मुझे नहीं लगता कि आप ऐसा करना चाहते हैं, या फिर रेलों को करना होगा प्रत्येक अनुरोध के लिए एक नया कनेक्शन खोलें। यहां यह केवल एक बार किया जाता है जब सर्वर बूट होता है। – ryeguy
इसके लिए आपको बहुत बहुत धन्यवाद! अपने रेल ऐप को बाहरी डेटाबेस से जोड़ने के लिए खुद को कोशिश कर रहा था। बहुत उपयोगी। – Vicer