添加一个';枚举';使用Phinx迁移的MySQL字段类型

添加一个';枚举';使用Phinx迁移的MySQL字段类型,mysql,enums,migration,phinx,Mysql,Enums,Migration,Phinx,我试图在Phinx中创建一个迁移(实际上是回滚),它将在MySQL数据库中创建一个枚举类型字段。读了这篇文章后,我的印象是这应该很简单,但每次都失败了 $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中创建一个迁移(实际上是回滚),它将在MySQL数据库中创建一个枚举类型字段。读了这篇文章后,我的印象是这应该很简单,但每次都失败了

$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查询。

使用master的最新版本(高于0.5.x-dev):


也许对其他人来说,添加枚举列会很有趣

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();

对于那些关心的人来说,
set
列类型也是如此。
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();