Плагин переноса базы данных CakePHP 3.x: есть ли способ изменить поле таблицы?

Я пытаюсь выяснить, как лучше всего изменить существующую колонку таблицы MySQL с помощью плагина CakePHP Migrations. Мне не нужно добавлять или удалять столбец, я просто хочу изменить длину столбца строки.

В настоящее время столбец определяется как varchar(50); Я переназначаю столбец и хочу определить его как varchar(2000),

Целью миграции является участие в автоматическом развертывании, выполняемом при стандартной установке веб-приложения CakePHP на типичном веб-сервере.

Насколько я могу судить, это выглядит как единственный путь (кроме ALTER заявление), чтобы выполнить это с помощью плагина миграции:

  1. переименовать колонку
  2. добавить новый столбец
  3. Переместить / скопировать существующие данные в новый столбец
  4. брось старый столбец

Возможно, я пропустил обсуждение в документах и ​​бесчисленных уроках и о том, как найти лучший способ сделать это, но это кажется громоздким и саморазрушающим методом.

Я прошел через оба Документация по плагину миграции CakePHP и Документация Финкс но я не вижу рекомендуемого метода для этого изменения. Я ценю любой вклад для этого.

3

Решение

К сожалению, документы Phinx не так полны, кажется, существуют различные недокументированные методы, например, тот, который вы ищете: \Phinx\Db\Table::changeColumn()

Следующее должно работать

$table = $this->table('table_name');
$table->changeColumn('column_name', 'string', [
'limit' => 2000
]);
$table->update();
6

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]