Laravel 5.4: SQLSTATE[42000] 1071 Specified key was too long error

379
11 сентября 2017, 05:51

Поставил на хост чистый laravel 5.4 через composer, сразу запустил миграции и получил ошибку:

$ php artisan migrate
Migration table created successfully.

[Illuminate\Database\QueryException]
SQLSTATE[42000]: 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`))

PDOException]
SQLSTATE[42000]: Syntax error or access violation:
1071 Specified key was too long; max key length is 767 bytes

Что не так и как исправить?

Answer 1

На русском ответа нет, а на английском ответ есть тут - Laravel 5.4: Specified key was too long error:

В Laravel 5.4 изменась кодировка по умолчанию для базы данных (теперь это utf8mb4 для поддержки emoji). Ошибка Specified key was too long error проявляется только для MySQL ниже v5.7.7 и в старых версиях MariaDB.

Для исправления этой ошибки внесите следующие изменения в файл app/Providers/AppServiceProvider.php:

  1. Добавьте строку в блоке use:

    use Illuminate\Support\Facades\Schema;
    
  2. Добавьте в метод boot строку:

    public function boot()
    {
        Schema::defaultStringLength(191);
    }
    
READ ALSO
Безопасность оплаты кнопкой PayPal

Безопасность оплаты кнопкой PayPal

Я настраиваю PayPal оплату услуг на сайтеВсе должно пройти автоматически до момента когда в админке засветится зеленая лампочка и скажет что...

262
Хранение различных постов

Хранение различных постов

На сайте есть 3 раздела, в первом располагаются посты, во 2 располагается галерея с описанием и названием для каждой записи, в 3-м разные новостиВопрос...

199
Как прочитать строку из консоли

Как прочитать строку из консоли

Есть алгоритм для переворота строкиОн переводит только ту строку,которую я укажу в char string[] = "Hello, world"; Но как сделать так,чтобы он переводил...

308
Проблема с работой программы в разных IDE

Проблема с работой программы в разных IDE

Доброго времени суток! В свое время написал простенькое консольное приложение для проверки управления цифровыми TTL линиями платы L780 от L Card в легковесной...

319