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