使用Phinx Migrate添加“枚举”MySQL字段类型

时间:2016-03-02 12:54:24

标签: mysql enums migration phinx

我正在尝试在Phinx中创建一个迁移(实际上是一个回滚),它将在MySQL DB中创建一个枚举类型字段。阅读docs之后我觉得这应该很简单,但每次都失败了。

$table = $this->table('mytable');
$table->addColumn('warmth','enum', array('limit' => array('1', '2', '3', '4', '5', 'P', 'A', 'B', 'C', 'D', 'X', 'N')))
->save();

不幸的是,没有简单的方法让Phinx输出有问题的SQL查询。

2 个答案:

答案 0 :(得分:14)

使用master中的最新版本(0.5.x-dev以上):

$this->table('my_table')
->addColumn('status', 'enum', ['values' => ['enabled', 'disabled']])
->save();

答案 1 :(得分:1)

也许对于其他人来说,有趣的是,有another way要添加一个ENUM列

use Phinx\Db\Adapter\MysqlAdapter;
use Phinx\Db\Table\Column;

$this->table('posts')
    ->addColumn(
        (new Column())
            ->setName('status')
            ->setType(MysqlAdapter::PHINX_TYPE_ENUM)
            ->setValues([
                'draft', 'publish', 'private', 'trash',
            ])
    )
    ->update();