Laravel. Specified key was too long

Данный материал предоставлен сайтом PacificSky.Ru исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.

Начиная с Laravel5.4 был внесен ряд изменений.
Одно из новшеств Laravel - поддержка хранения 'эмодзи'.
Осуществляется за счет смены кодировки по умолчанию на utf8mb4.
Данное новшество породило проблему, которая вызывает ошибку в MySql v5.7.7 и младших версиях, а так-же старых версиях MariaDB.

Чаще всего ошибку можно встретить при вы полнении миграции:
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")



В официальной документации, раздела миграции Laravel, можно найти решение данной проблемы.
Для исправлений ошибки необходимо открыть и отредактировать файл AppServiceProvider.php ('app\Providers\AppServiceProvider.php').
В AppServiceProvider ищем метод boot и добавляем в него строку - 'Schema::defaultStringLength(191);':


Выполнение данной манипуляции должно устранить возникновение ошибок подобного рода.
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.