Я думаю многие из вас сталкивались с ошибкой при попытке запуска миграций в Laravel. Дело в том, что начиная с версии 5.4, Laravel использует другой набор символов для базы данных, а именно utf8m4
который поддерживает emoji (ну куда же без них). Однако, если вы используете в качестве движка базы данных MySQL v5.7.7 и выше, то все у вас будет работать из коробки, ничего делать не нужно.
А вот если версия MySQL ниже или же вы используете MariaDB (Привет пользователи XAMPP), при попытке запустить миграцию, вы получите примерно такую ошибку:
Migration table created successfully. In Connection.php line 664: 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`)) In Connection.php line 458: SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes
Исправить такую ошибку на удивление очень легко. Открываем в редакторе файл app/Providers/AppServiceProvider.php
. Внутри метода boot
задаем длинну строки по умолчанию, вот так:
use Illuminate\Support\Facades\Schema; public function boot() { Schema::defaultStringLength(191); }
Пробуем опять запустить миграции и всё должно работать.
Спасибо, братан, помог!
Работает. Спасибо!
Had the same issue before, used Long Path Tool to resolved it.
Был просто в отчаянии. Всё получилось! Спасибо!