Возможно ли, чтобы некоторые модели находились в одной базе данных и других моделях в другой (используя одно и то же соединение)?
 У меня есть несколько таблиц только для чтения, которые я хочу использовать для нескольких установок моей системы.  Другие таблицы должны быть за установку.  Например, users – это общая таблица, а posts – для каждой установки. 
  В одной схеме (назовем ее «shared») у нас есть таблица users , а в другой схеме («mycake») есть posts . 
Я смог получить чтение модели User из другой базы данных, создав новое соединение с базой данных, которое указывает на общую базу данных (хотя две базы данных находятся на одном и том же хосте и оба доступны с одинаковыми данными для входа).
 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';  не помогает … 
У этого сайта есть способ сделать это, но он немного взломан.
Здесь есть решение.
Я создал сайт в CakePHP, у которого есть модели, использующие разные базы данных, и у меня никогда не было проблем с присоединением к различным базам данных – структура, казалось, заботилась обо всем этом для меня. Хотя вам может потребоваться явно указать таблицы базы данных, используемые в ваших моделях, чтобы заставить ее работать.