如何在Yii2中使用新创建的自定义Postgres模式类型(ENUM)

时间:2018-06-27 19:30:29

标签: postgresql enums yii2 migration

使用带有Yii2的Postgres,使用

在postgresql中创建了一个新的ENUM类型
createCommand("CREATE TYPE colorEnum AS ENUM ('red', 'black', 'white'););

创建表时,如何在Yii2 Migrate类中使用它,例如:

$this->createTable('myTable’, [
            'color' =>  'what should go here?'

1 个答案:

答案 0 :(得分:2)

以下任何一种方法都可以使用,包括@ rob006提出的建议:

public function safeUp()
{
   $this->execute("CREATE TYPE colorEnum AS ENUM ('red', 'black', 'white')");

   $this->createTable('myTable', [
       "color0" => "colorEnum",
       "color1" => "colorEnum  default 'black'",
       "color2" => $this->getDb()->getSchema()->createColumnSchemaBuilder("colorEnum  default 'black'"),
   ];

   // ...
}

public function safeDown()
{
    // ...
    $this->execute('DROP TYPE colorEnum');
}