Heim > Artikel > Backend-Entwicklung > Wie kann der Laravel-Migrationsfehler „Eindeutiger Schlüssel ist zu lang, auch wenn angegeben“ behoben werden?
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!