Пример ошибки
Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table users add unique users_email_unique(email))
Почему возникает ошибка
Ошибка вызвана тем, что Laravel по умолчанию использует кодировку utf8mb4 и, если версия MySQL ниже чем 5.7.7 или MariaDB ниже 10.2.2 тогда, вам необходимо вручную задать настройку — длина строки по умолчанию. Этот параметр будет использоваться в миграциях для того чтобы создать индекс.
Как исправить
Открываем app/Providers/AppServiceProvider.php
В AppServiceProvider в метод boot добавляем Schema::defaultStringLength со значением 191
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
\Illuminate\Support\Facades\Schema::defaultStringLength(191);
}
Источник: https://laravel.com/docs/master/migrations#indexes
Оставить комментарий