2012-01-23 6 views
6

Non riesco a trovare alcun esempio online su come configurare due database separati per Magento: uno per le richieste di lettura e uno per le richieste di scrittura. Presumo che ciò dovrebbe accadere in app/etc/local.xml ma non so quale sia la sintassi. Qualcuno conosce la sintassi o ha un link a un post sul blog o qualcosa che la mia ricerca non è stata visualizzata?Database separati in lettura e scrittura in Magento

Io corro Magento 1.6.1.0

Grazie

+0

Domanda interessante. Posso chiederti in quale tipo di scenario si dovrebbero separare i DB per la lettura e la scrittura? – mas

+0

Per [Load Balancing] (http://en.wikipedia.org/wiki/Load_balancing_%28computing%29). Magento ha una lettura molto intensa. Utilizzando [RDS] (http://aws.amazon.com/rds/) leggi replica (s) posso distribuire il carico sul DB e gestire più traffico. – Max

risposta

20

Nella tua app/etc/local.xml compilare <resources> in modo successivo:

<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

Ricevo errore irreversibile: chiamata a una funzione membro getTableName() su un oggetto non in /path/to/magento/magento/app/code/core/Mage/Core/Model/Resource.php sulla riga 296 ' Qualche idea? – Max

+0

Nessuna idea. Hai svuotato la cache? – Zyava

+2

Serve solo per aggiungere '' in modo che sovrascriva ciò che era in app/etc/config.xml. Tuttavia, ho deciso di sovrascrivere default_read e default_write. Penso sia meglio. – Max