Как подключить несколько внешних баз данных в Magento? [закрыто

StackOverflow https://stackoverflow.com/questions/4654379

Вопрос

Мне нужно подключиться к некоторым внешним базам данных из Magento. Я нашел один учебник Создайте внешнее соединение с базой данных в Magento. Отказ Этот учебник был полезен, и он работал для подключения к одной внешней базе данных. Но я должен подключить более одной внешние базы данных.

Как я могу подключиться к нескольким внешним базам данных (предположим 5 внешних баз данных) в Magento?

Это было полезно?

Решение

Я нашел этот модуль Magento, который поможет подключиться к внешней системе базы данных. http://subesh.com.np/2012/02/magent-external-database-connector-v1-0-0-Relede/

Я попробовал модуль и, кажется, работает хорошо. Он помогает.

РЕДАКТИРОВАТЬ:

Модуль также доступен на Magento Connect. http://www.magentocommerce.com/magent-connect/sp-edb-4574.html.

Другие советы

Я не проверял это, но я ожидаю, что дублирование externaldb_* узлы под global\resources с другим (уникальным) именем ресурса, например, externaldb2_* должно сработать.

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

Вы можете указать ресурс, используемый в файле модуля и т. Д. / Config.xml, чтобы модуль всегда использовал определенный источник данных, или вы можете указать в глобальном XML Config, как описано в предыдущем ответе, то это соединение будет использоваться По умолчанию.

Вы можете изменить ресурс в свой код:

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

Насколько я могу сказать, вы не можете иметь модели подключения к нескольким источникам базы данных из того же модуля.

То, что я сделал, является создание параллельного модуля для фирма, который содержит только модель, которая необходимо подключить к альтернативной базе данных. Таким образом, модуль, который выполняет всю работу в одной ветви, и фиктивной модуль для разговора с другой базой данных является отдельно. Красиво решает проблему, хотя это не самое элегантное решение ... но это не наименее элегантный

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top