Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann der Laravel-Migrationsfehler „Eindeutiger Schlüssel ist zu lang, auch wenn angegeben' behoben werden?

Wie kann der Laravel-Migrationsfehler „Eindeutiger Schlüssel ist zu lang, auch wenn angegeben' behoben werden?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-01 04:48:02963Durchsuche

How to Fix

Laravel-Migrationsfehler: „Eindeutiger Schlüssel ist zu lang, auch wenn er angegeben ist“

Laravel-Migrationsfehler können beim Erstellen eindeutiger Schlüssel für Spalten auftreten die die zulässige Maximallänge überschreiten. Im gegebenen Szenario ist der Benutzer auf dieses Problem gestoßen, als er versuchte, eine Benutzertabelle mit einer E-Mail-Spalte mit einer Länge von 320 Zeichen zu migrieren.

Die Fehlermeldung weist darauf hin, dass der angegebene Schlüssel (E-Mail) zu lang ist , mit einer maximalen Schlüssellänge von 767 Bytes. Um dieses Problem zu beheben, besteht die empfohlene Lösung darin, die Länge der E-Mail-Spalte zu reduzieren.

Die Standardlänge für eine Zeichenfolgenspalte in Laravel beträgt 250 Zeichen. Wenn Sie die E-Mail-Spalte auf diese Länge festlegen, sollte die Migration ohne den Fehler bei der eindeutigen Schlüssellänge erfolgreich sein. Alternativ kann die E-Mail-Spalte basierend auf den spezifischen Anforderungen der Anwendung auf eine kleinere Länge eingestellt werden.

Für Laravel 5.4 und höher ist eine zusätzliche Lösung verfügbar. Durch Bearbeiten der Datei AppServiceProvider.php und Festlegen einer Standard-String-Länge in der Boot-Methode kann die maximale Länge aller String-Spalten angepasst werden.

Indem Builder::defaultStringLength auf einen kleineren Wert gesetzt wird, z. B. 191 , sollte der Fehler behoben sein und die Migration kann erfolgreich fortgesetzt werden.

Das obige ist der detaillierte Inhalt vonWie kann der Laravel-Migrationsfehler „Eindeutiger Schlüssel ist zu lang, auch wenn angegeben' behoben werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn