Как подключить несколько внешних баз данных в Magento? [закрыто
-
09-10-2019 - |
Вопрос
Мне нужно подключиться к некоторым внешним базам данных из 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’);
Насколько я могу сказать, вы не можете иметь модели подключения к нескольким источникам базы данных из того же модуля.
То, что я сделал, является создание параллельного модуля для фирма, который содержит только модель, которая необходимо подключить к альтернативной базе данных. Таким образом, модуль, который выполняет всю работу в одной ветви, и фиктивной модуль для разговора с другой базой данных является отдельно. Красиво решает проблему, хотя это не самое элегантное решение ... но это не наименее элегантный