Проблемът:"Указаният ключ беше твърде дълъг; максималната дължина на ключа е 767 байта"
Един от тези проблеми, които може да срещнете при използване на PHP рамката Laravel, е този:
Specified key was too long; max key length is 767 bytes
След известно проучване разбрах, че се появява при използване на по-стари версии на MySQL (преди 5.7.8) или MariaDB (преди 10.2.2). В моя случай беше MariaDB.
Решение №1:
В Laravel това може да бъде разрешено просто чрез промяна на конфигурацията на вашия доставчик на услуги на приложение (в app/Providers/AppServiceProvider.php
) със следното:
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);
}
След това може да се наложи да изградите отново вашата база данни с помощта на php artisan migrate:fresh --seed
- това напълно ще нулира вашата база данни и ще започне наново.
Решение №2:
Можете също да надстроите своя сървър на база данни. Това не е обсъждано тук, тъй като е много специфично за системата. DuckDuckGo е ваш приятел 💪️