wake-up-neo.com

Schema-Generator: Tabelle erstellen, falls nicht vorhanden

Ich verwende den folgenden Code in Schema Builder, um eine Tabelle zu erstellen.

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

Hier ist das Problem, wenn ich die neue Tabelle erstellen muss, werden alle alten Skripts ausgeführt und zeigen Fehler an, dass die Tabelle bereits existiert. 

gibt es eine Möglichkeit, eine Tabelle zu erstellen, falls sie nicht mit dem Schema-Builder vorhanden ist?

20
Pankaj

Versuche dies

if (!Schema::hasTable('tblCategory')) {
     // create the tblCategory table
}
40
paranoid

Bitte überprüfe die Antwort hier

Um eine neue Tabelle anzulegen, gibt es nur eine Prüfung durch Laravel Schemafunktion hasTable.

Wenn Sie jedoch eine Tabelle löschen möchten, bevor Sie ihre Existenz überprüfen, hat Schema die Funktion dropIfExists.

Schema::dropIfExists('table_name');

Die Tabelle wird gelöscht, wenn eine Tabelle vorhanden ist.

5
DB::transaction(function () {
        // Create your table here with schema builder.
});

Wenn innerhalb des Transaktionsabschlusses eine Ausnahme ausgelöst wird, wird die Transaktion automatisch zurückgesetzt. Wenn Sie versuchen, eine bereits vorhandene Tabelle zu erstellen, wird ein Fehler ausgegeben. Die meisten Datenbanktransaktionen sollten in Laravel geschlossen sein.

https://laravel.com/docs/5.6/database

0
Hexxefir