Specified key was too long


Das Problem mit dem Schlüssel der zu lang ist

„Specified key was too long“! Diese unschöne Überraschung könnte dich dank einer kleinen Anpassung erwarten.

Laravel 5.4 hat die Datenbank für Satzeichen angepasst auf utf8mb4 und unterstützt seitdem auch das Speichern von Emojis. Großartig oder?!  Prinzipiell schon. Wenn alles reibungslos klappt und man von dem Update so gut wie nichts mitbekommt.

Von dieser Änderung werden nur neue Anwendungen betroffen sein und solange du mit MYSQLv5.7.7 und höheren Versionen arbeitest, wirst du keinerlei Probleme durch die Anpassung von Laravel haben. 

Solltest du aber mit einer älteren Version von MySQL arbeiten oder auch mit MariaDB, dann wirst du wahrscheinlich bei der Migration mit folgenden Problem konfrontiert: „Specified key was too long“

 

[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))

Oder

[PDOException]
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes

So eine  Fehlermeldung wegen einer Änderung kann sehr nervenaufreibend und zeitintensiv sein wenn man nicht weiß wie man diesen Fehler beheben kann. Zum Glück gibt es ja den „Laravel Migrations Guide„. 

Hier finden sich, wenn man der englischen Sprache mächtig ist, alle nützlichen Informationen rund um das Thema Migration. Da wir dich aber nicht lange suchen lassen wollen, servieren wir dir hier die Lösung: 

Laravel Error beheben

Um diese Fehlermeldung zu beheben musst du deine AppServiceProvider.php Datei anpassen und eine Standard „string length“ einfügen: 

 

use Illuminate\Support\Facades\Schema;

public function boot()
{
Schema::defaultStringLength(191);
}

Nachdem du diese Änderung vorgenommen hast, sollte alles wie gewünscht funktionieren.

Wir hoffen dir hat unser Beitrag helfen können und wünschen dir weiterhin viel Spaß beim arbeiten mit Laravel.

 

Dir gefällt dieser Beitrag? -Der Nächste könnte dir auch gefallen!

Alle News Zurück

Posted by on 14:48 in News