< Zu den Blogbeiträgen

Laravel Fehler: Specified key was too long error

Dies ist ein häufiger Fehler, vor allem wenn eine Laravel Anwendung neu aufgesetzt wird und zum ersten Mal eine Migration ausgeführt wird. Hier zeigen wir dir, wie Du diesen Fehler lösen kannst.

Woher kommt der Fehler?

Laravel hat in der Version 5.4 eine Veränderung in dem Standard Charset der Datenbanken gemacht. Dieses ist jetzt utf8mb4, damit auch etwa Emojis gesichert werden können. This only affects new applications and as long as you are running MySQL v5.7.7 and higher you do not need to do anything. Für alle, welche MariaDB oder MySQL in einer Version niedriger als v5.7.7 verwenden, könnte der folgende Fehler bei Migrationen auftreten:

[Illuminate\Database\QueryException] SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table users add unique users_email_unique(email)) [PDOException] SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes

 

Fehler beheben

Um den Fehler zu beheben, genügt es eine kleine Änderung in der AppServiceProvider.php durchzuführen und innerhalb der boot() Funktion eine Standard Zeichenlänge hinzuzufügen

use Illuminate\Support\Facades\Schema;
public function boot() {
  Schema::defaultStringLength(191);
}

Danach sollte alles wie gehabt funktionieren. Achtung: es kann sein, dass die Migration nicht erneut durchgeführt werden kann, da Teile der Tabelle bereits angelegt wurden. php artisan migrate:fresh macht somit alle Migrationen rückgängig - bedeutet komplett Datenverlust! php artisan migrate:rollback macht den letzten Schritt rückgängig.

Laravel Fehler: Specified key was too long error

Jetzt durchstarten

Mit unseren Schulungen noch tiefer in das Thema einsteigen und mehr Erfolg in der Umsetzung haben

Zum Newsletter anmelden

Bleibe informiert und erhalte nützliche Informationen über Marketing und produktbezogene Inhalte kostenlos in deinem Posteingang.

E-Mail-Newsletter abonnieren

Erhalte stets die neuesten Informationen über Seminare-IT kostenfrei in deinem Postfach.

We care about the protection of your data. Read our Privacy Policy.