CakePHP 3 миграция отсутствует перечисление

У меня вопрос;

Кто-нибудь имел опыт переноса таблицы с помощью CakePHP 3 Migration Tool, которая, когда определенное поле является ENUM Тип данных, сценарий миграции автоматически преобразует его в строку или текст.

Как я могу избежать этого и как я могу поддерживать тип данных из ENUM?

Спасибо

1 ответ

Решение

Это зависит от используемого драйвера, так как enum не поддерживается всеми системами баз данных. Для драйвера MySQL, используя enum тип приведет к соответствующему DDL.

Класс миграции:

public function up()
{
    $table = $this->table('testenum');
    $table
        ->addColumn('enum_column', 'enum', [
            'values' => ['one', 'two']
        ])
        ->create();
}

DDL:

CREATE TABLE `testenum` (
  `enum_column` enum('one','two') NOT NULL,
  PRIMARY KEY (`id`)
) 

В пакете Phinx, enum присутствует только в MysqlAdapter.

Другие вопросы по тегам