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`))
Após longo debate com o suporte de uma famosa empresa de hospedagem e colocado em uma fila de espera para ter o DB migrado para versão MySQL >= v. 5.7, fiz minha própria analise para entender o porquê de tal comportamento. Consultei informações na web e me deparei com alguns comentários referente a cálculo de bytes, como pode ser visto no site Stack Exchange mais especificamente na parte de Database Administrators, onde no final de uma das respostas uma observação feita chamou minha atenção: "Also, have a look at why varchar(255) is a bad idea."!
Sendo assim, ao revisar o "dump" e a saída gerada pelas migrations, percebi que todos os campos varchar estavam como VARCHAR(255), onde certamente era meu problema. Após alterar todos os VARCHAR(255) para VARCHAR(191) (padrão para MySQL >= v. 5.7) meu problema foi resolvido.
Apenas inclua as seguintes linhas em seu App\Providers\AppServiceProvider.php:
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Schema; // Inclua essa linha <----
class AppServiceProvider extends ServiceProvider
{
/**
* Register any application services.
*
* @return void
*/
public function register()
{
//
}
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
Schema::defaultStringLength(191); // Inclua essa linha <----
}
}
Feito isso seus problemas estarão resolvidos!!!
Espero que ajude alguém.
[]'s