2016-08-23 50 views
7

Wykonuję ENUM pola, a wynikiem jest błąd, gdy używam yii migrate/up w oknach CMD.Jak wykonać migrację do pola enum yii2

public function up() 
{ 
    $tableOptions = null; 
    if ($this->db->driverName === 'mysql') { 
     $tableOptions = 'CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE=InnoDB'; 
    } 

    $this->createTable('{{%user_social_media}}', [ 
     'social_media' => $this->ENUM('facebook', 'google', 'twitter', 'github'), 
     'id' => $this->primaryKey(), 
     'username' => $this->string(), 
     'user_id' => $this->integer(11), 
     'created_at' => $this->integer(11), 
     'updated_at' => $this->integer(11),    
     ], $tableOptions); 
} 

When I migrate/up error

Odpowiedz

19

Nie ma metody wyliczenia() w tej chwili, ponieważ nie każdy DB wspiera pola ENUM. Można to zrobić ręcznie, choć:

'social_media' => "ENUM('facebook', 'google', 'twitter', 'github')", 
+0

Ok rozwiązany dzięki .. – CrashBurn

+0

Następnie oznaczyć go jako sloved, proszę :) –

+2

otwarta dyskusja o niej tylko w przypadku, gdy zmienia się w przyszłości: https://github.com/ yiisoft/yii2/issues/9797 –