8
votes

Comment connecter plusieurs bases de données externes à Magento?


1 commentaires

Ce type de question n'appartient pas vraiment au débordement de la pile, car ce n'est pas une question de programmation. Vous devriez jeter un coup d'œil à zone51.stackexchange.com/proposals/25439/magento et voyez à propos d'obtenir un endroit propice mettre ce genre de questions


4 Réponses :


5
votes

Je ne l'ai pas testé, mais je m'attendrais à ce que je vous attendrais à dupliquer le externaldb _ * code> nœuds sous global \ ressources code> avec un autre nom de ressource (unique). externaldb2 _ * code> 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>


2 commentaires

Merci Jonathan pour la réponse rapide. Cependant, je veux récupérer des données à Magento Way (en utilisant / créer des modèles de magentas). Après avoir ajouté le nœud externaldb2, comment puis-je l'utiliser dans les modèles Magento. Comme dans le lien exemple, le nœud ExternalDB est utilisé pour définir le modèle. Comment puis-je définir le modèle pour externaldb2 de manière similaire?


@chapagain, faites la même chose, mettez le modèle dans un module différent, dans ledit module Configuration de la 2e base de données comme votre ressource, et vous pouvez faire ce que vous essayez de faire ... appelez simplement le modèle du 2e module à travers le 1er



5
votes

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

Vous pouvez modifier la ressource dans votre code: xxx


0 commentaires

2
votes

J'ai trouvé ce module magento qui aidera à se connecter au système de base de données externe. http://subesh.com. NP / 2012/02 / Magento-Externe-Base de données-connecteur-V1-0-0-Livrée /

J'ai essayé le module et semble fonctionner bien. Est-ce que cela aide.

EDIT:

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


1 commentaires

Ce lien est mort maintenant, avez-vous un ULR frais? Des commentaires de suivi sur la manière dont cela a travaillé dans des sites en direct?



0
votes

Autant que je puisse dire, vous ne pouvez pas avoir de modèles de connexion à plusieurs sources de base de données à partir du même module.

Ce que j'ai fait, c'est créer un module factice parallèle, qui ne contient que le modèle qui doit être connecté à la base de données alternative. Donc, 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é. Résout le problème magnifiquement, bien que ce ne soit pas la solution la plus élégante ... mais ce n'est pas le moins élégant non plus


0 commentaires