Некоторые комментарии в принятом ответе выше приводят меня к созданию этого ответа.Технически вы можете создавать новые таблицы на лету, используя функцию YourModel-> query ().В настоящее время я использую это в поведении, которое я пишу.Это работает в CakePHP 2.x, почти наверняка это работает и в 1.3.
В функции настройки для поведения я проверяю, существует ли таблица.Если это не так, я создаю его.
$dataSource = ConnectionManager::getDataSource('your DB');
if(!in_array($tableName, $dataSource->listSources()){
$this->createYourTableFunction();
}
В createYourTableFunction вы создаете временную модель для запуска YourModel-> query ().И просто предоставьте свои инструкции SQL.При создании вашей временной модели просто установите для параметра таблицы значение false, чтобы не получить ошибку отсутствующей таблицы.
$YourModel = new Model(array('table' => false, 'name' => 'YourModel', 'ds' => 'Your DB'));
$YourModel->query('SQL instruction string');