Magento切换数据库,使用不同数据库

简介:
1. 在app/etc/local.xml 中,添加新的 数据库选项
<?xml version="1.0"?>
<config>
<global>
<install>
<date><![CDATA[Tue, 05 Jul 2011 03:23:52 +0000]]></date>
</install>
<crypt>
<key><![CDATA[80eb4be66ce28df745f27c75f2604d33]]></key>
</crypt>
<disable_local_modules>false</disable_local_modules>
<resources>
<db>
<table_prefix><![CDATA[]]></table_prefix>
</db>
<default_setup>
<connection>
<host><![CDATA[localhost]]></host>
<username><![CDATA[root]]></username>
<password><![CDATA[]]></password>
<dbname><![CDATA[hello]]></dbname>
<active>1</active>
</connection>
</default_setup>
<vip_space_read>
<connection>
<host><![CDATA[localhost]]></host>
<username><![CDATA[root]]></username>
<password><![CDATA[]]></password>
<dbname><![CDATA[hello_dev_test]]></dbname>
<model>mysql4</model>
<initStatements>SET NAMES utf8</initStatements>
<type>pdo_mysql</type>
<active>1</active>
</connection>
</vip_space_read>
</resources>
<session_save><![CDATA[files]]></session_save>
</global>
<admin>
<routers>
<adminhtml>
<args>
<frontName><![CDATA[hello_admin]]></frontName>
</args>
</adminhtml>
</routers>
</admin>
</config>
  2. 在需要使用的不同数据库的model resource中,重写 _setResource 方法,例如
class Hello_Vip_Model_Entity_Vip_Adapter extends Mage_Core_Model_Mysql4_Abstract
{
protected $_logFile = 'vip.adapter.log';
protected function _construct()
{
$this->_setResource(array('read' =>'vip_space_read', 'write'
=>'vip_space_read'));
}
  经过以上两步,就能在某个model中使用不同的数据库

最新内容请见作者的GitHub页:http://qaseven.github.io/

相关文章
|
SQL 数据库
数据库不一致时启动数据库
本文介绍数据库不一致时如何启动数据库。
|
SQL Oracle NoSQL
常见的数据库和数据库管理工具
常见的数据库和数据库管理工具
|
SQL NoSQL Oracle
【数据库】实际项目上,用到的数据库,涨涨小知识
说到数据库,本篇文章来简单总结下实际项目上用到的数据库
60 0
|
Oracle 关系型数据库 数据库
国产化瀚高数据库数据迁移文档:oracle11g数据库转瀚高8.6数据库实例演示
国产化瀚高数据库数据迁移文档:oracle11g数据库转瀚高8.6数据库实例演示
570 0
国产化瀚高数据库数据迁移文档:oracle11g数据库转瀚高8.6数据库实例演示
|
关系型数据库 数据库 PostgreSQL
PostgreSQL命令行方式登陆数据库
PostgreSQL命令行方式登陆数据库
374 0
|
关系型数据库 数据库连接 数据库
删除 PostgresSql 数据库 报错:有 N 个其它会话正在使用数据库 的解决方案
遇到的问题 在PostgreSQL 9.2 及以上版本,执行下面的语句: postgres=# drop database dbtest; # 执行删除指定数据库的时候,报以下错误 ERROR: database "dbtest" is being accessed by other users DETAIL: There is 2 other session using the database. 或者使用 Navicat 等第三方数据库连接工具,删除指定数据库的时候报错,说明此时有两个客户端在连接此数据库,此时不能删除数据库。
1756 0
|
SQL 关系型数据库 数据库
PostgreSQL 10.1 手册_部分 III. 服务器管理_第 22 章 管理数据库_22.2. 创建一个数据库
22.2. 创建一个数据库 为了创建一个数据库,PostgreSQL服务器必须启动并运行(见第 18.3 节)。 数据库用 SQL 命令CREATE DATABASE创建: CREATE DATABASE name; 其中name遵循SQL标识符的一般规则。
1188 0
|
关系型数据库 Shell 数据库
PostgreSQL 10.1 手册_部分 III. 服务器管理_第 22 章 管理数据库_22.5. 销毁一个数据库
22.5. 销毁一个数据库 数据库用DROP DATABASE命令删除: DROP DATABASE name; 只有数据库的拥有者或者超级用户才可以删除数据库。删除数据库会移除其中包括的所有对象。
1107 0
|
关系型数据库 数据库 PostgreSQL
PostgreSQL 10.1 手册_部分 III. 服务器管理_第 22 章 管理数据库_22.3. 模板数据库
22.3. 模板数据库 CREATE DATABASE实际上通过拷贝一个已有数据库进行工作。默认情况下,它拷贝名为template1的标准系统数据库。所以该数据库是创建新数据库的“模板”。 如果你为template1数据库增加对象,这些对象将被拷贝到后续创建的用户数据库中。
1269 0
|
关系型数据库 MySQL Linux