1

我有一个主从数据库。为了平衡一些负载,我希望我的所有 INSERT/UPDATE 查询都转到主服务器,而我所有的 SELECT 查询都转到从服务器(因为你不能在不弄乱它的情况下写入从服务器)。我在 database.php 中定义了数据库。这就是我尝试进行切换的方式:

在 AppModel.php beforeFind()中,我正在设置:

$this->useDBConfig = 'readOnly';

beforeSave()中,我正在设置:

$this->useDBConfig = 'writeOnly';

但是,在深入研究之后,我想知道 useDBConfig 是否是一对一的关系模型到数据库。意思是,也许 useDBConfig 仅用于将单个模型指向单个数据库,因为这并不总是像我期望的那样工作。有时 INSERT / UPDATE 将尝试在具有只读权限的只读设备上运行并失败。

如果是这种情况,如何更改我的 CakePHP 应用程序以将请求发送到适当的数据库?我应该以不同的方式这样做吗?

4

1 回答 1

1

基本上,您覆盖 AppModel 中的所有保存方法(save、saveField、saveAssociated、saveAll、UpdateAll、delete、deleteAll 等),并封装两个 setDatasource 调用之间的父调用。

于 2012-08-31T19:41:28.357 回答