我有一个主从数据库。为了平衡一些负载,我希望我的所有 INSERT/UPDATE 查询都转到主服务器,而我所有的 SELECT 查询都转到从服务器(因为你不能在不弄乱它的情况下写入从服务器)。我在 database.php 中定义了数据库。这就是我尝试进行切换的方式:
在 AppModel.php beforeFind()中,我正在设置:
$this->useDBConfig = 'readOnly';
在beforeSave()中,我正在设置:
$this->useDBConfig = 'writeOnly';
但是,在深入研究之后,我想知道 useDBConfig 是否是一对一的关系模型到数据库。意思是,也许 useDBConfig 仅用于将单个模型指向单个数据库,因为这并不总是像我期望的那样工作。有时 INSERT / UPDATE 将尝试在具有只读权限的只读设备上运行并失败。
如果是这种情况,如何更改我的 CakePHP 应用程序以将请求发送到适当的数据库?我应该以不同的方式这样做吗?