Laravel 5.4 — Ошибка миграции в MySQL: SQLSTATE[42000]: Syntax error or access violation…

Привет всем! Вот столкнулся сегодня с довольно распространенной ошибкой при выполнении миграции баз данных в Laravel 5.4. Дело в том что именно в этой версии Laravel был изменен набор символов по умолчанию и теперь это —  utf8mb4  а не просто utf8, как это было более старых версиях MySQL . Соответственно если вы используете MySQL  ниже v5.7.7 то скорей всего тоже столкнетесь с описанной здесь ошибкой, а именно, при выполнении миграции (команды в консоли: php artisan migrate) возникает примерно следующее сообщение:

[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

Вот и скриншот ошибки:

error_migration

Решение данной проблемы довольно простое, все что вам нужно сделать это зайти в файл —  AppServiceProvider.php который находится по пути: [ app/Providers/AppServiceProvider.php ] и в методе boot() прописать следующие строки: Schema::defaultStringLength(191); не забыв при этом подключить нужный фасад (use Illuminate\Support\Facades\Schema;), то есть в итоге файл должен выглядеть так:

use Illuminate\Support\Facades\Schema;

public function boot()
{
    Schema::defaultStringLength(191);
}

Собственно говоря и все, после этого у вас все заработает. На этом все удачи!!!