某些模型是否可以在一个数据库中而其他模型在另一个数据库中(使用相同的连接)?
我有许多我想在我的系统的多个安装之间共享的只读表。其他表需要按安装进行。例如,假设users
是共享表,并且posts
是按安装的。
在一个模式(我们称之为“共享”)中,我们有users
表,而在另一个模式(“mycake”)中是posts
.
我已经能够通过创建一个指向共享数据库的新数据库连接来从另一个数据库读取用户模型(尽管这两个数据库位于同一主机上并且都可以使用相同的登录详细信息进行访问)。
class User extends AppModel {
var $useDBConfig = 'sharedConnection';
}
问题是何时加入posts
表。它不会将架构名称添加到表名称之前,因此它无法找到posts
.
// what it does
SELECT * FROM users User INNER JOIN posts Post ...
// what I'd like it to do:
SELECT * FROM shared.users User INNER JOIN mycake.posts Post ...
所以基本上,有没有办法为模型分配一个完全限定的表名并强制它在所有查询中使用它?设置var $useTable = 'shared.users';
没用...