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.