Magento からいくつかの外部データベースに接続する必要があります。Magento で外部データベース接続を作成するためのチュートリアルが 1 つ見つかりました。このチュートリアルは役に立ち、1 つの外部データベースへの接続に役立ちました。しかし、複数の外部データベースに接続する必要があります。
Magento で複数の外部データベース (5 つの外部データベースを想定) に接続するにはどうすればよいですか?
Magento からいくつかの外部データベースに接続する必要があります。Magento で外部データベース接続を作成するためのチュートリアルが 1 つ見つかりました。このチュートリアルは役に立ち、1 つの外部データベースへの接続に役立ちました。しかし、複数の外部データベースに接続する必要があります。
Magento で複数の外部データベース (5 つの外部データベースを想定) に接続するにはどうすればよいですか?
モジュールの etc/config.xml ファイルで使用されるリソースを指定して、モジュールが常に特定のデータ ソースを使用するようにするか、前の回答で説明したようにグローバル構成 xml で指定すると、この接続が使用されます。デフォルト。
コードでリソースを変更できます。
$resource = Mage::getSingleton(‘core/resource’);
$conn = $resource->getConnection(‘externaldb2_read’);
私はそれをテストしていませんが、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>
外部データベース システムへの接続に役立つこの 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
私の知る限り、モデルを同じモジュール内から複数のデータベース ソースに接続することはできません。
私が行ったことは、代替データベースに接続する必要があるモデルのみを含む並列ダミー モジュールを作成することです。したがって、すべての作業を行うモジュールは 1 つのブランチにあり、他のデータベースと対話するためのダミー モジュールは別です。最もエレガントなソリューションではありませんが、問題を美しく解決します...しかし、最もエレガントではないわけでもありません