cakephp-3.0 - CakePHP 3 迁移缺少枚举

标签 cakephp-3.0 phinx

我有个问题;

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

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

谢谢

最佳答案

这取决于使用的驱动程序,因为 enumnot supported by all database systems .对于 MySQL 驱动程序,使用 enum type 将产生适当的 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 中。

关于cakephp-3.0 - CakePHP 3 迁移缺少枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37338748/

相关文章:

cakephp - 如何更改表格月份的名称

mysql - 识别 MySQL "Integrity constraint violation"(1022) 消息中的错误外键

php - 无法创建迁移 phinx

php - cakephp3测试组件在非对象上调用成员函数on()

mysql - 在 cakephp3 中迁移

php-7.4 - 从迁移文件运行 Phinx 种子

php - 在 Docker 容器上运行 PHINX 迁移时出现 PDO 连接错误

php - CakePHP 连接在浏览器中被拒绝

mysql - CakePHP 3 - 查找器未加载正确的数据

php - CakePHP 3 错误 : The application is trying to load a file from the DebugKit plugin