2016-02-17 3 views
12

Ich verwende den folgenden Code im Schema Builder, um Tabelle zu erstellen. HierSchema Builder: Tabelle erstellen, wenn nicht vorhanden

Schema::create('tblCategory', function (Blueprint $table) { 
    $table->increments('CategoryID'); 
    $table->string('Category', 40); 
    $table->unique('Category', 'tblCategory_UK_Category'); 
    $table->timestamps(); 
}); 

ist das Problem ist, wenn ich die neue Tabelle erstellen haben, alle alten Skripte ausgeführt und zeigen Fehler, dass Tabelle bereits vorhanden ist.

Gibt es eine Möglichkeit, eine Tabelle zu erstellen, wenn sie nicht mit dem Schema-Builder existiert?

+0

Verwenden Sie sogar Laravels integriertes Migrationstool? – Morten

+0

ja, Version 5.2.15. – Pankaj

+0

Und Sie laufen 'php artisan migrate'? Wenn die Datei erfolgreich ausgeführt wurde, sollte sie in der Datenbank gespeichert werden, damit die Datei nicht erneut ausgeführt wird. – Morten

Antwort

25

Versuchen Sie, diese

if (!Schema::hasTable('tblCategory')) { 
    // create the tblCategory table 
} 
+2

Sie können auch 'if (Schema :: hasTable ('tblCategory')) {return; } 'vor dem Hinzufügen stattdessen. –

2

Please check the answer here

Um eine neue Tabelle zu erstellen, gibt es nur eine Überprüfung hasTable von Laravel Schema-Funktion ist.

Aber wenn Sie eine Tabelle löschen möchten, bevor Sie ihre Existenz überprüfen, haben Schema eine Funktion mit dem Namen dropIfExists.

Schema::dropIfExists('table_name'); 

Die Tabelle wird gelöscht, wenn die Tabelle existiert.