CakePHP 3 迁移缺少枚举
CakePHP 3 migration missing enum
我有一个问题;
有没有人使用 CakePHP 3 迁移工具迁移 table,当特定字段是 ENUM
数据类型时,迁移脚本会自动将其转换为字符串或文本。
如何避免它以及如何维护来自 ENUM
的数据类型?
谢谢
这取决于使用的驱动程序,因为 enum
是 not 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 中。
我有一个问题;
有没有人使用 CakePHP 3 迁移工具迁移 table,当特定字段是 ENUM
数据类型时,迁移脚本会自动将其转换为字符串或文本。
如何避免它以及如何维护来自 ENUM
的数据类型?
谢谢
这取决于使用的驱动程序,因为 enum
是 not 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 中。