2011-05-29 44 views
3

我希望創建一個遷移,其up方法將執行create_table函數。指定Yii遷移中字符串的長度

例如:

 
class m101129_185401_create_news_table extends CDbMigration 
{ 
    public function up() 
    { 
     $this->createTable('tbl_news', array(
      'id' => 'pk', 
      'title' => 'string NOT NULL', 
      'content' => 'text', 
     )); 
    } 

    public function down() 
    { 
     $this->dropTable('tbl_news'); 
    } 
} 

如何指定字段的遷移長度是多少?例如。如果我必須指定標題字段的長度應爲100,我會寫些什麼?

回答

5

嘿!我相信這是他們去年所做的補充。我沒有嘗試過,但這不工作?

public function up() 
{ 
    $this->createTable('tbl_news', array(
     'id' => 'pk', 
     'title' => 'varchar(20) NOT NULL', 
     'content' => 'text', 
    )); 
} 

此外,在this網站,你會發現它可以是有用的信息,以及here。祝你好運!

+0

thanx爲解決方案! – lorefnon 2011-06-10 08:47:33

+0

這個解決方案的問題是它不是跨DB兼容的。例如在Postgres中,「varchar(20)」不是有效的字段類型。 – CarstenSchmitz 2012-05-30 12:12:14

+0

實際上它在PostgreSQL中工作正常:VARCHAR(xx) – danielpopa 2013-03-07 15:06:10