Frage

muss ich einige externe Datenbanken von Magento verbinden. Ich fand ein Tutorial Erstellen Sie eine externe Datenbank-Verbindung in Magento . Dieses Tutorial war hilfreich und es funktionierte zu einer externen Datenbank zu verbinden. Aber, ich habe mehr als eine externe Datenbanken zu verbinden.

Wie kann ich mehr als eine externen Datenbanken (5 annehmen externe Datenbanken) in Magento verbinden?

War es hilfreich?

Lösung

Ich fand dieses Magento Module, die auf externes Datenbanksystem verbinden helfen. http://subesh.com. np / 2012/02 / magento-external-Datenbank-connector-v1-0-0-Freigabe /

habe ich versucht, das Modul und scheint zu funktionieren well.Hope, das hilft.

EDIT:

Module auch auf Magento Connect zur Verfügung. http://www.magentocommerce.com/magento-connect/sp-edb -4574.html

Andere Tipps

Ich habe es nicht getestet, aber ich würde erwarten, dass die externaldb_* Knoten unter global\resources mit einem anderen (eindeutigen) Ressourcennamen duplizieren z.B. externaldb2_* sollte funktionieren.

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

Sie können die Ressource in der etc / config.xml-Datei des Moduls verwendet angeben, so dass ein Modul immer eine bestimmte Datenquelle verwenden, oder Sie können in der globalen Konfigurations xml angeben, wie von der vorherigen Antwort beschrieben, dann ist diese Verbindung standardmäßig verwendet werden.

Sie können die Ressource im Code ändern:

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

Soweit ich das beurteilen kann, kann man nicht Modelle hat aus dem gleichen Modul zu mehreren Datenbankquellen verbinden.

Was ich getan habe, ist eine parallele Dummy-Modul erstellen, das enthält nur das Modell, dass der Bedarf an die alternativen Datenbank zu verbinden. So das Modul, das die ganze Arbeit tut, ist in einem Zweig, und die Dummy-Modul zur anderen Datenbank zu reden ist getrennt. Löst das Problem schön, obwohl es nicht die eleganteste Lösung ... aber es ist nicht die am wenigsten elegant entweder

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top