如何在Magento中连接多个外部数据库?

Muk*_*ain 8 database database-connection magento-1.9

我需要从Magento连接到一些外部数据库.我找到了一个在Magento中创建外部数据库连接的教程.本教程很有帮助,它可以连接到一个外部数据库.但是,我必须连接多个外部数据库.

如何在Magento中连接到多个外部数据库(假设有5个外部数据库)?

Jon*_*Day 5

我没有对它进行过测试,但我希望用另一个(唯一的)资源名称复制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>
Run Code Online (Sandbox Code Playgroud)

  • 感谢Jonathan的快速回复.但是,我想以Magento方式获取数据(使用/创建Magento模型).添加externaldb2节点后,如何在Magento模型中使用它.与示例链接一样,externaldb节点用于定义模型.如何为externaldb2定义模型? (2认同)

Tom*_*een 5

您可以指定模块的etc/config.xml文件中使用的资源,以便模块始终使用某个数据源,或者您可以按照上一个答案的描述在global config xml中指定,然后此连接将由默认.

您可以更改代码中的资源:

$resource = Mage::getSingleton(‘core/resource’);
$conn     = $resource->getConnection(‘externaldb2_read’);
Run Code Online (Sandbox Code Playgroud)


Sub*_*rel 2

我发现这个 Magento 模块将有助于连接到外部数据库系统。http://subesh.com.np/2012/02/magento-external-database-connector-v1-0-0-released/

我尝试了该模块,似乎运行良好。希望这会有所帮助。

编辑:

模块也可在 Magento Connect 上使用。http://www.magentocommerce.com/magento-connect/sp-edb-4574.html