Question

Je dois vous connecter à des bases de données externes à partir de Magento. J'ai trouvé un tutoriel pour Création d'une connexion de base de données externe dans Magento . Ce tutoriel a été utile et il a travaillé pour la connexion à une base de données externe. Mais, je dois vous connecter plus d'une base de données externe.

Comment puis-je me connecter à plus d'une des bases de données externes (supposons que 5 bases de données externes) dans Magento?

Était-ce utile?

La solution

J'ai trouvé celui Magento module qui vous aidera à se connecter au système de base de données externe. http://subesh.com. np / 2012/02 / magento connecteur v1-0-0-base de données-externe-publié /

J'ai essayé le module et semble fonctionner well.Hope cette aide.

EDIT:

Module également disponible sur Magento Connect. http://www.magentocommerce.com/magento-connect/sp-edb -4574.html

Autres conseils

Je l'ai pas testé, mais j'attendre à ce que la duplication des noeuds de externaldb_* sous global\resources avec un autre nom (unique) des ressources par exemple externaldb2_* devrait fonctionner.

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

Vous pouvez spécifier la ressource utilisée dans etc / config.xml du module, de sorte qu'un module utilisera toujours une certaine source de données ou vous pouvez spécifier dans le fichier XML de configuration globale tel que décrit par la réponse précédente, alors cette connexion être utilisé par défaut.

Vous pouvez modifier la ressource dans votre code:

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

Pour autant que je peux dire, vous ne pouvez pas avoir des modèles de connexion à des sources multiples bases de données à partir du même module.

Qu'est-ce que je l'ai fait, est de créer un module factice parallèle, qui ne contient que le modèle qui doit se connecter à la base de données alternative. Ainsi, le module qui fait tout le travail est dans une branche, et le module factice pour parler à l'autre base de données est séparée. Résout le problème magnifiquement, même si ce n'est pas la solution la plus élégante ... mais ce n'est pas moins élégante soit

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top