Да, вы можете сделать это. Это не относится к cakePHP: вам просто нужно знать код SQL для создания столбцов и их удаления, и поместить этот SQL в вызов query ().
Эта страница ваш друг.
Должны ли вы заниматься этим, это другой вопрос; как правило, вы не должны изменять базу данных или структуру таблицы во время выполнения - только во время установки или обновления. Например, если вам нужно разрешить создание пользовательских полей для профиля пользователя или что-то в этом роде, то изменение структуры таблицы во время выполнения не является решением. Что бы вы сделали, у вас есть отдельная таблица, содержащая все настраиваемые поля, и таблица, содержащая все значения вместе с идентификатором поля и идентификатором пользователя. Это был бы правильный способ нормализовать это; да, он включает в себя три таблицы вместо одной, но это лучше, чем, например, столбцы user_customfield1, user_customfield2, user_customfield3, все в одной таблице, и изменять эту структуру во время выполнения.