Come collegare più database esterni in Magento? [chiuso]
-
09-10-2019 - |
Domanda
Ho bisogno di connettersi ad alcuni database esterni da Magento. Ho trovato un tutorial per Creare una connessione database esterno in Magento . Questo tutorial è stato utile e ha funzionato per la connessione a un database esterno. Ma, devo collegare più di un database esterni.
Come posso collegare a più di un database esterni (supponiamo 5 database esterni) in Magento?
Soluzione
Ho trovato questo uno Magento modulo che vi aiuterà per la connessione al sistema di database esterni. http://subesh.com. np / 2012/02 / Magento-esterno-Database-connector-v1-0-0 rilasciato /
Ho provato il modulo e sembra funzionare well.Hope questo aiuta.
EDIT:
Modulo disponibile su Magento Connect anche. http://www.magentocommerce.com/magento-connect/sp-edb -4574.html
Altri suggerimenti
Non ho provato, ma mi aspetterei che duplicare i nodi externaldb_*
sotto global\resources
con un altro nome (unico) delle risorse per esempio externaldb2_*
dovrebbe funzionare.
<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>
È possibile specificare la risorsa utilizzata nel file etc / config.xml del modulo, in modo che un modulo utilizzerà sempre una certa fonte di dati oppure è possibile specificare nel XML di configurazione globale come descritto dalla risposta precedente, allora questo collegamento sarà essere utilizzato per impostazione predefinita.
È possibile modificare la risorsa nel codice:
$resource = Mage::getSingleton(‘core/resource’);
$conn = $resource->getConnection(‘externaldb2_read’);
Per quanto posso dire, non si può avere modelli di connessione a più fonti di database all'interno dello stesso modulo.
Quello che ho fatto, è creare un modulo fittizio in parallelo, che contiene solo il modello che deve connettersi al database alternativo. Così il modulo che fa tutto il lavoro è in un ramo, e il modulo fittizio per parlare con l'altro database è separato. Risolve il problema in modo bello, anche se non è la soluzione più elegante ... ma è non meno elegante o