„1071 Specified key was too long; max key length is 1000“ Fehler in Laravel beheben

Bei der Nutzung von Laravel in Kombination mit einer älteren Version von MySQL kann es beim Ausführen von Datenbank-Migrationen zu folgender Fehlermeldung kommen:

1071 Specified key was too long; max key length is 1000

Um diesen Fehler zu beheben muss die Datei app/Providers/AppServiceProvider.php angepasst werden:

<?php

namespace AppProviders;

use IlluminateSupportServiceProvider;
use IlluminateSupportFacadesSchema; // hinzufügen

class AppServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        Schema::defaultStringLength(191); // hinzufügen
    }

    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        //
    }
}

Beide Zeilen, die mit “hinzufügen” gekennzeichnet sind, in die Datei einfügen.

Anschließend die Datei config/database.php anpassen und dort die MySQL-Einstellung:

'engine' => null,

in folgendes ändern:

'engine' => 'InnoDB ROW_FORMAT=DYNAMIC',

Im letzten Schritt die Cache und Config-Cache leeren:

php artisan cache:clear
php artisan config:clear

Nun sollten die Migrationen ausgeführt werden können.

php artisan migrate

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert