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

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

黄舟
黄舟Original
2017-10-24 09:07:001884Durchsuche

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!

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