Vorwort
Dieser Artikel stellt hauptsächlich den relevanten Inhalt zu Migrationsfehlern vor, die von Laravel 5.4 aufgrund zu langer Spezialfelder gemeldet werden. Ich werde ihn nicht zu Referenzzwecken weitergeben Schauen wir uns weiter unten noch viel mehr an:
Laravel 5.4 hat den Standard-Datenbankzeichensatz geändert und utf8mb4 bietet jetzt Unterstützung für das Speichern von Emojis. MySQL erfordert Version 5.7.7 oder höher. Wenn Sie versuchen, den Migrationsbefehl auf einigen MariaDB- oder älteren Versionen von MySQL auszuführen, wird die folgende Fehlermeldung angezeigt:
[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 `use rs_email_unique`(`email`)) [PDOException] SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes
Lösung
Nach der Abfrage können wir einen Standardwert in der Boot-Methode in der Datei AppServiceProvider.php festlegen:
<?php namespace App\Providers; use Illuminate\Support\ServiceProvider; //添加的代码 use Illuminate\Support\Facades\Schema; class AppServiceProvider extends ServiceProvider { /** * Bootstrap any application services. * * @return void */ public function boot() { //添加的代码 Schema::defaultStringLength(191); } /** * Register any application services. * * @return void */ public function register() { // } }
Das obige ist der detaillierte Inhalt vonSo lösen Sie das Problem des Migrationsfehlers, der dadurch verursacht wird, dass spezielle Felder im Laravel5.4-Framework zu lang sind. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!