Нет, похоже, что не поддерживается в CakeSchema: (
http://api.cakephp.org/view_source/dbo-source#l-3103
Вам придется полагаться на пользовательский SQL для его поддержки.
Iиспользуйте плагин CakeDC Migrations для управления изменениями схемы (вверх и вниз).
https://github.com/CakeDC/migrations
При этом я использовал обратный вызов after () для запуска пользовательских операторов alter
var $migration = array(
'up' => array(
'create_field' => array(
'utils' => array(
'indexes' => array(
// can not add here, because we can't specify column
// length - see after() callback
//'key_val' => array('column' => array('key', 'val'), 'unique' => 0),
'key_misc1' => array('column' => array('key', 'misc1'), 'unique' => 0),
)
)
)
),
'down' => array(
'drop_field' => array(
'utils' => array(
'indexes' => array(
'key_val',
'key_misc1',
)
)
)
),
);
function after($direction) {
if ($direction=='up') {
$sql = 'ALTER TABLE `utils` ADD INDEX `key_val` (`key`, `val`(128));';
$Util = ClassRegistry::init('Util');
$Util->query($sql);
}
return true;
}
`` `