So lösen Sie das Problem des Migrationsfehlers, der dadurch verursacht wird, dass spezielle Felder im Laravel5.4-Framework zu lang sind

黄舟
Freigeben: 2023-03-16 18:32:01
Original
1856 Leute haben es durchsucht

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
Nach dem Login kopieren

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()
 {
  //
 }
}
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!