2012-01-23 4 views
6

Я не могу найти примеры онлайн о том, как настроить две отдельные базы данных для Magento - одну для запросов на чтение и одну для запросов на запись. Я предполагаю, что это должно произойти в app/etc/local.xml, но я не знаю, что такое синтаксис. Кто-нибудь знает синтаксис или имеет ссылку на сообщение в блоге или что-то, что мой поиск не появился?Отдельные базы данных для чтения и записи в Magento

Я бегу Magento 1.6.1.0

Благодарности

+0

Интересный вопрос. Могу ли я спросить вас, в каком сценарии будут разделяться БД для чтения и записи? – mas

+0

Для [Балансировка нагрузки] (http://en.wikipedia.org/wiki/Load_balancing_%28computing%29). Magento очень читаем. Используя [RDS] (http://aws.amazon.com/rds/), прочитайте реплику (ы), я могу распределить нагрузку на БД и обработать больше трафика. – Max

ответ

20

В вашем app/etc/local.xml заполнить <resources> в следующем виде:

<resources> 
     <db> 
      <table_prefix><![CDATA[]]></table_prefix> 
     </db> 
     <core_read> 
      <connection> 
       <use /> 
       <host><![CDATA[localhost]]></host> 
       <username><![CDATA[root]]></username> 
       <password><![CDATA[]]></password> 
       <dbname><![CDATA[db_read_name]]></dbname> 
       <initStatements><![CDATA[SET NAMES utf8]]></initStatements> 
       <model><![CDATA[mysql4]]></model> 
       <type><![CDATA[pdo_mysql]]></type> 
       <pdoType><![CDATA[]]></pdoType> 
       <active>1</active> 
      </connection> 
     </core_read> 
     <core_write> 
      <connection> 
       <use /> 
       <host><![CDATA[localhost]]></host> 
       <username><![CDATA[root]]></username> 
       <password><![CDATA[]]></password> 
       <dbname><![CDATA[db_write_name]]></dbname> 
       <initStatements><![CDATA[SET NAMES utf8]]></initStatements> 
       <model><![CDATA[mysql4]]></model> 
       <type><![CDATA[pdo_mysql]]></type> 
       <pdoType><![CDATA[]]></pdoType> 
       <active>1</active> 
      </connection> 
     </core_write> 
    </resources> 
+1

Я получаю «Неустранимая ошибка: вызов функции-члена getTableName() для не-объекта в /path/to/magento/magento/app/code/core/Mage/Core/Model/Resource.php в строке 296 ' Любая идея? – Max

+0

Нет идей. Вы сбросили кеш? – Zyava

+2

Просто нужно добавить '', чтобы он перезаписал то, что было в app/etc/config.xml. Однако я решил перезаписать default_read и default_write. Я думаю, что это лучше. – Max

Смежные вопросы