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?

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top