CakePHP 3迁移缺失枚举

时间:2016-05-20 05:44:40

标签: cakephp-3.0 phinx

我有一个问题;

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

如何避免使用它?如何保持ENUM的数据类型?

由于

1 个答案:

答案 0 :(得分:2)

这取决于使用的驱动程序,因为enumnot supported by all database systems。对于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 package中,enum仅出现在MysqlAdapter中。