Я пытаюсь выяснить, как лучше всего изменить существующую колонку таблицы MySQL с помощью плагина CakePHP Migrations. Мне не нужно добавлять или удалять столбец, я просто хочу изменить длину столбца строки.
В настоящее время столбец определяется как varchar(50)
; Я переназначаю столбец и хочу определить его как varchar(2000)
,
Целью миграции является участие в автоматическом развертывании, выполняемом при стандартной установке веб-приложения CakePHP на типичном веб-сервере.
Насколько я могу судить, это выглядит как единственный путь (кроме ALTER
заявление), чтобы выполнить это с помощью плагина миграции:
Возможно, я пропустил обсуждение в документах и бесчисленных уроках и о том, как найти лучший способ сделать это, но это кажется громоздким и саморазрушающим методом.
Я прошел через оба Документация по плагину миграции CakePHP и Документация Финкс но я не вижу рекомендуемого метода для этого изменения. Я ценю любой вклад для этого.
К сожалению, документы Phinx не так полны, кажется, существуют различные недокументированные методы, например, тот, который вы ищете: \Phinx\Db\Table::changeColumn()
Следующее должно работать
$table = $this->table('table_name');
$table->changeColumn('column_name', 'string', [
'limit' => 2000
]);
$table->update();
Других решений пока нет …