Laravel 5.x: Specified key was too long error

Laravel 5.4 made a change to the default database character set, and it’s now utf8mb4 which includes support for storing emojis.

This only affects new applications and as long as you are running MySQL v5.7.7 and higher you do not need to do anything.

As outlined in the Migrations guide to fix this all you have to do is edit your AppServiceProvider.php file and inside the boot method set a default string length:

use Illuminate\Support\Facades\Schema;

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

After that everything should work as normal.

https://laravel-news.com/laravel-5-4-key-too-long-error