2011-01-11 10 views
8

मुझे Magento से कुछ बाहरी डेटाबेस से कनेक्ट करने की आवश्यकता है। मुझे Create an external database connection in Magento पर एक ट्यूटोरियल मिला। यह ट्यूटोरियल सहायक था और यह एक बाहरी डेटाबेस से कनेक्ट करने के लिए काम करता था। लेकिन, मुझे एक से अधिक बाहरी डेटाबेस कनेक्ट करना है।Magento में एकाधिक बाहरी डेटाबेस कैसे कनेक्ट करें?

मैगेंटो में मैं एक से अधिक बाहरी डेटाबेस (5 बाहरी डेटाबेस मान लीजिए) से कैसे कनेक्ट कर सकता हूं?

+0

इस प्रकार का प्रश्न वास्तव में स्टैक ओवरफ़्लो पर नहीं है, क्योंकि यह प्रोग्रामिंग प्रश्न नहीं है। आपको http://area51.stackexchange.com/proposals/25439/magento पर एक नज़र डालना चाहिए और इस तरह के प्रश्नों को रखने के लिए उचित स्थान प्राप्त करने के बारे में देखें – Sturm

उत्तर

2

मैं बाहरी डेटाबेस प्रणाली से कनेक्ट करने में मदद मिलेगी कि यह एक Magento मॉड्यूल पाया। http://subesh.com.np/2012/02/magento-external-database-connector-v1-0-0-released/

मैंने मॉड्यूल की कोशिश की और लगता है कि यह अच्छी तरह से काम कर रहा है। उम्मीद है कि इससे मदद मिलती है।

संपादित करें:

मॉड्यूल Magento कनेक्ट पर भी उपलब्ध है। http://www.magentocommerce.com/magento-connect/sp-edb-4574.html

+0

के माध्यम से वह लिंक अब मर चुका है, क्या आपके पास एक नया यूएलआर है? लाइव साइट्स में यह कैसे काम करता है इस पर कोई फॉलो-अप टिप्पणियां? –

5

मैंने इसका परीक्षण नहीं किया है, लेकिन मैं उम्मीद करता हूं कि नोड्स global\resources के तहत एक और (अद्वितीय) संसाधन नाम उदा। externaldb2_* काम करना चाहिए।

<global> 
<resources> 
    <externaldb_write> 
    <connection> 
     <use>externaldb_database</use> 
    </connection> 
    </externaldb_write> 
    <externaldb_read> 
    <connection> 
     <use>externaldb_database</use> 
    </connection> 
    </externaldb_read> 
    <externaldb_setup> 
    <connection> 
     <use>core_setup</use> 
    </connection> 
    </externaldb_setup> 
    <externaldb_database> 
    <connection> 
     <host><![CDATA[localhost]]></host> 
     <username><![CDATA[db_username]]></username> 
     <password><![CDATA[db_password]]></password> 
     <dbname><![CDATA[db_name]]></dbname> 
     <model>mysql4</model> 
     <type>pdo_mysql</type> 
     <active>1</active> 
    </connection> 
    </externaldb_database> 
    <externaldb2_write> 
    <connection> 
     <use>externaldb2_database</use> 
    </connection> 
    </externaldb2_write> 
    <externaldb2_read> 
    <connection> 
     <use>externaldb2_database</use> 
    </connection> 
    </externaldb2_read> 
    <externaldb2_setup> 
    <connection> 
     <use>core_setup</use> 
    </connection> 
    </externaldb2_setup> 
    <externaldb2_database> 
    <connection> 
     <host><![CDATA[localhost2]]></host> 
     <username><![CDATA[db2_username]]></username> 
     <password><![CDATA[db2_password]]></password> 
     <dbname><![CDATA[db2_name]]></dbname> 
     <model>mysql4</model> 
     <type>pdo_mysql</type> 
     <active>1</active> 
    </connection> 
    </externaldb2_database> 
</resources> 

+2

तत्काल उत्तर के लिए धन्यवाद जोनाथन। हालांकि, मैं Magento तरीके से डेटा लाने (Magento मॉडल का उपयोग/बनाने) चाहते हैं। Externaldb2 नोड जोड़ने के बाद, मैं Magento मॉडल में इसका उपयोग कैसे कर सकता हूं। उदाहरण लिंक के रूप में, मॉडल को परिभाषित करने के लिए externaldb नोड का उपयोग किया जाता है। मैं externaldb2 के लिए मॉडल को कैसे परिभाषित कर सकता हूं? –

+0

@chapagain, वही काम करें, मॉडल को एक अलग मॉड्यूल में रखें, मॉड्यूल में आपके संसाधन के रूप में दूसरा डेटाबेस सेटअप करें, और आप जो भी करने की कोशिश कर रहे हैं वह कर सकते हैं ... बस दूसरे मॉड्यूल से मॉडल को आमंत्रित करें पहले – sucitivel

4

आप कर सकते हैं, मॉड्यूल के etc/config.xml फ़ाइल में इस्तेमाल किया संसाधन निर्दिष्ट ताकि एक मॉड्यूल हमेशा एक निश्चित डेटा स्रोत का उपयोग करेगा या के रूप में द्वारा वर्णित आप वैश्विक config एक्सएमएल में निर्दिष्ट कर सकते हैं पिछला उत्तर, तो यह कनेक्शन डिफ़ॉल्ट रूप से उपयोग किया जाएगा।

अपने कोड के संसाधन बदल सकते हैं:

$resource = Mage::getSingleton(‘core/resource’); 
$conn  = $resource->getConnection(‘externaldb2_read’); 
0

जहाँ तक मैं कह सकता हूं, आप मॉड्यूल को एक ही मॉड्यूल के भीतर से कई डेटाबेस स्रोतों से कनेक्ट नहीं कर सकते हैं।

मैंने जो किया है, वह समानांतर डमी मॉड्यूल बना रहा है, जिसमें केवल उस मॉडल को शामिल किया गया है जिसे वैकल्पिक डेटाबेस से कनेक्ट करने की आवश्यकता है। तो मॉड्यूल जो सभी काम करता है एक शाखा में है, और डमी मॉड्यूल दूसरे डेटाबेस से बात करने के लिए अलग है। समस्या को खूबसूरती से हल करता है, हालांकि यह सबसे सुरुचिपूर्ण समाधान नहीं है ... लेकिन यह कम से कम सुरुचिपूर्ण नहीं है