CakePHP 3 迁移缺少枚举

CakePHP 3 migration missing enum

我有一个问题;

有没有人使用 CakePHP 3 迁移工具迁移 table,当特定字段是 ENUM 数据类型时,迁移脚本会自动将其转换为字符串或文本。

如何避免它以及如何维护来自 ENUM 的数据类型?

谢谢

这取决于使用的驱动程序,因为 enumnot supported by all database systems。对于 MySQL 驱动程序,使用 enum 类型将产生适当的 DDL。

迁移class:

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 package 中,enum 仅存在于 MysqlAdapter 中。