Пример ошибки
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
Оставить комментарий