CakePHP может автоматически создавать таблицы из моделей? - PullRequest
3 голосов
/ 11 августа 2010

В python :: Pylons я могу выполнить команду setup-app, и она посмотрит мои модели и выдаст соответствующий ddl CREATE TABLE или CREATE INDEX для моей конкретной базы данных.

похоже, что это будет функция в CakePHP, но у меня возникают проблемы с ее поиском.

На самом деле я вижу это в руководстве: «Вы можете создавать таблицы базы данных, как обычно. Когда вы создаете классы Model, они автоматически сопоставляются с таблицами, которые вы создали».

что заставляет меня верить, что его не существует?

Ответы [ 2 ]

2 голосов
/ 11 августа 2010

Нет, все наоборот - вы можете создавать модели, контроллеры и представления, используя схему БД. Логичнее сначала иметь схему проектирования БД.

Проверьте это из

0 голосов
/ 09 сентября 2016

Некоторые комментарии в принятом ответе выше приводят меня к созданию этого ответа.Технически вы можете создавать новые таблицы на лету, используя функцию 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');
...