Syntax error or access violation: 1071 Specified key was too long; max key length is

Пример ошибки

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

Рекомендуем к прочтению



Оставить комментарий

Этот сайт защищен reCAPTCHA и применяются Политика конфиденциальности и Условия обслуживания применять.

Срок проверки reCAPTCHA истек. Перезагрузите страницу.