Wie behebt man den Fehler „Angegebener Schlüssel war zu lang' bei Laravel-Migrationen?

DDD
Freigeben: 2024-10-30 22:44:03
Original
731 Leute haben es durchsucht

How to Fix

Behebung des Fehlers „Angegebener Schlüssel war zu lang“ bei Laravel-Migrationen

Bei der Migration von Tabellen in Laravel stoßen Entwickler möglicherweise auf die Fehlermeldung „Angegebener Schlüssel war Fehler „zu lang“. Dies liegt daran, dass die standardmäßige maximale Länge für Schlüssel in MySQL 767 Byte beträgt.

Eine Lösung besteht darin, die Schlüssellänge explizit in der Migration anzugeben. Zum Beispiel:

Schema::create('users', function(Blueprint $table) {
    $table->increments('id');
    $table->string('email', 250)->unique('users_email_unique');
});
Nach dem Login kopieren

Laravel 5.4 und höher

In Laravel 5.4 und höher kann die Standardzeichenfolgenlänge in der Datei AppServiceProvider.php festgelegt werden:

<code class="php">use Illuminate\Database\Schema\Builder;

public function boot()
{
    Builder::defaultStringLength(191);
}</code>
Nach dem Login kopieren

Alternativ können Sie die Länge für einzelne Spalten innerhalb der Migration angeben:

<code class="php">Schema::create('users', function(Blueprint $table) {
    $table->increments('id');
    $table->string('email', 191)->unique('users_email_unique');
});</code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie behebt man den Fehler „Angegebener Schlüssel war zu lang' bei Laravel-Migrationen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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