2013-10-11 48 views
8

試圖設置一個遷移,使我現有的「活動」字段的默認值爲「1」。Laravel Schema Builder更新默認值

我看到在我的文檔可以使用類似:

$table->integer('active')->default(1); 

但我沒有成功嘗試這在我的遷移,我猜是因爲該領域已經存在。有沒有辦法使用模式構建器正確管理現有的字段?

我目前的遷移:

public function up() 
{ 
    Schema::table('scores', function($table){ 
     $table->integer('active')->default(1); 
    }); 
} 

編輯:

從我至今讀,這不能與查詢生成器來完成。但是,當我嘗試運行原始查詢:

DB::query("ALTER TABLE `scores` CHANGE COLUMN `active` `active` int(11) NOT NULL DEFAULT '1';"); 

我得到一個「方法‘的查詢’不存在錯誤」,所以我猜這個方法的名字改變了我只是找不到什麼又改爲

回答

12

看起來像DB ::查詢()變更爲DB ::聲明()

這奏效了:

DB::statement("ALTER TABLE `scores` CHANGE COLUMN `active` `active` int(11) NOT NULL DEFAULT '1';"); 
+1

既然你不改變列的名稱,而不是CHANGE COLUMN,您可以使用MODIFY COLUMN並省略secon在你的陳述中積極參與。新語句如下所示:DB :: statement(「ALTER TABLE scores」MODIFY COLUMN active int(11)NOT NULL DEFAULT'1';「);'stackoverflow.com/a/14767467/788445 – Jon