Problemet:"Den angivne nøgle var for lang; maks. nøglelængde er 767 bytes"
Et af disse problemer, du måske støder på ved at bruge PHP-rammeværket Laravel, er dette:
Specified key was too long; max key length is 767 bytes
Efter lidt research har jeg fundet ud af, at det kommer op, når du bruger ældre versioner af MySQL (før 5.7.8) eller MariaDB (før 10.2.2). Det var MariaDB i mit tilfælde.
Løsning #1:
I Laravel kan dette løses ved blot at ændre konfigurationen af din app-tjenesteudbyder (i app/Providers/AppServiceProvider.php
) med følgende:
use Illuminate\Support\Facades\Schema;
public function boot()
{
/**
* Ensure we aren't running into `Specified key was too long; max key length is 767 bytes`
*
* @see https://peterthaleikis.com/posts/laravel:-specified-key-was-too-long-max-key-length-is-767-bytes/
**/
Schema::defaultStringLength(191);
}
Herefter skal du muligvis genopbygge din database ved hjælp af php artisan migrate:fresh --seed
- dette vil nulstille din database fuldstændigt og starte på en frisk.
Løsning #2:
Du kan også opgradere din databaseserver. Dette er ikke blevet diskuteret her, da det er meget systemspecifikt. DuckDuckGo er din ven 💪️