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

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



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

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.