Pregunta

necesito conectar a algunas bases de datos externas de Magento. He encontrado un tutorial para Crear una conexión a base de datos externa en Magento . Este tutorial ha sido útil y que trabajó para la conexión a una base de datos externa. Pero, tengo que conectar más de una base de datos externa.

¿Cómo puedo conectar a más de una base de datos externa (supongamos 5 bases de datos externas) en Magento?

¿Fue útil?

Solución

Me pareció que éste era Magento módulo que le ayudará a conectarse al sistema de base de datos externa. http://subesh.com. np / 2012/02 / magento-externa-base-conector-v1-0-0-lanzado /

Me trató el módulo y parece estar funcionando well.Hope esto ayuda.

EDIT:

También Módulo disponible en Magento Connect. http://www.magentocommerce.com/magento-connect/sp-edb -4574.html

Otros consejos

I no han probado, pero sería de esperar que la duplicación de los nodos externaldb_* bajo global\resources con otro nombre (único) de recursos, por ejemplo, externaldb2_* debería funcionar.

<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>

Puede especificar el recurso utilizado en el archivo etc / config.xml del módulo, de manera que un módulo utilizará siempre una cierta fuente de datos o se puede especificar en el xml de configuración global según lo descrito por la respuesta anterior, a continuación, esta conexión se ser utilizado de forma predeterminada.

Puede cambiar el recurso en el código:

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

Por lo que yo puedo decir, no se puede tener modelos de conexión a múltiples fuentes de bases de datos desde dentro del mismo módulo.

Lo que he hecho, es crear un módulo comodín en paralelo, que sólo contiene el modelo que necesita conectarse a la base de datos alternativo. Por lo que el módulo que hace todo el trabajo se encuentra en una de las ramas, y el módulo ficticio para hablar con la otra base de datos está separada. Resuelve el problema muy bien, aunque no es la solución más elegante ... pero no es la menos elegante o bien

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top