2013-10-11 5 views
8

eine Migration auf Setup Der Versuch, die meine bereits bestehenden Feld „aktiv“ machen haben einen Standardwert von „1“.Laravel Schema Builder aktualisieren Standardwert

Ich sehe in der Dokumentation ich so etwas wie verwenden:

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

Aber ich versuchte, dies in meiner Migration ohne Erfolg, ich denke, da das Feld bereits existiert. Gibt es eine Möglichkeit, vorhandene Felder mithilfe des Schema-Generators korrekt zu verwalten?

Meine aktuelle Migration:

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

Edit:

Von dem, was ich bisher gelesen habe, kann dies nicht mit dem Query Builder erfolgen. Aber wenn ich versuche, eine rohe Abfrage auszuführen:

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

Ich erhalte eine „Methode‚Abfrage‘nicht Fehler vorhanden ist“, so vermute ich, diese Methode Namen ich geändert wurde, kann einfach nicht finden, was es wurde geändert

Antwort

12

Sieht aus wie DB :: query() wurde auf DB geändert :: Aussage()

Dieser den Trick:

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

Da Sie nicht den Namen der Spalte ändern , statt CHANGE COLUMN können Sie MODIFY COLUMN verwenden und den secon weglassen d aktiv in Ihrer Aussage. Neue Anweisung wie folgt: DB :: statement ("ALTER TABLE scores ÄNDERN SPALTE aktiv int (11) NOT NULL DEFAULT '1';"); 'stackoverflow.com/a/14767467/788445 – Jon

Verwandte Themen