2015-10-09 11 views
9

ich diese Frage gefunden haben, sehr ähnlich Make column not nullable in a Laravel migration verminen, obwohl es fast 3 Jahre alt, und es gehört sicherlich nicht zu Laravel 5Make Spalte keine Nullwerte enthalten in einer Laravel 5 Migration

Mein Problem ist, dass ich eine Migration haben welches in der up Funktion es eine Spalte modifiziert, um es NULL zu machen. Jetzt, in der down Funktion möchte ich es nicht wieder nullable machen.

/** 
* Run the migrations. 
* 
* @return void 
*/ 
public function up() 
{ 
    Schema::table('mytable', function(Blueprint $table) { 
     $table->string('mycolumn')->nullable()->change(); 
    }); 
} 

/** 
* Reverse the migrations. 
* 
* @return void 
*/ 
public function down() 
{ 
    Schema::table('mytable', function(Blueprint $table) { 
    /* THIS IS WHAT I WOULD EXPECT TO DO 
    THOUGH OF COURSE THE FUNCTION notNullable DOES NOT WORK */ 
     $table->string('mycolumn')->notNullable()->change(); 
    }); 
} 

ich, dass unter Verwendung von rohen SQL erreichen könnte, aber ich mag es mit Laravel Methoden tun, wenn es möglich ist, ... aber ich kann ihn nicht finden, es ist wahrscheinlich nicht in dem umgesetzt worden Version 5 entweder.

+1

Von dem, was ich in dem Quellcode sehen kann, gibt es kein Gegenteil von '' 'nullable()' '', so dass Sie die Db Fassade verwenden müssen, um eine rohe Abfrage zu tun. – Amo

+0

Dank @Amo, ich fürchte, Sie haben Recht. –

Antwort

17

Zum Zurücksetzen auf nicht Nullable. Sie können das versuchen.

/** 
* Run the migrations. 
* 
* @return void 
*/ 
public function up() 
{ 
    Schema::table('mytable', function(Blueprint $table) { 
     $table->string('mycolumn')->nullable()->change(); 
    }); 
} 

/** 
* Reverse the migrations. 
* 
* @return void 
*/ 
public function down() 
{ 
    Schema::table('mytable', function(Blueprint $table) { 
    /* By default it's NOT NULL */ 
     $table->string('mycolumn')->nullable(false)->change(); // <--- here 
    }); 
} 
2

Standardmäßig ist es NICHT NULL, also sollten Sie dies versuchen.

/** 
* Run the migrations. 
* 
* @return void 
*/ 
public function up() 
{ 
    Schema::table('mytable', function(Blueprint $table) { 
     $table->string('mycolumn')->nullable()->change(); 
    }); 
} 

/** 
* Reverse the migrations. 
* 
* @return void 
*/ 
public function down() 
{ 
    Schema::table('mytable', function(Blueprint $table) { 
    /* By default it's NOT NULL */ 
     $table->string('mycolumn')->change(); 
    }); 
} 
+1

Ich dachte auch, das könnte funktionieren, aber leider wird es nicht zum Standard zurückkehren –

Verwandte Themen