Laravel 5.4: erro ao rodar o comando migrate (Specified key was too long error) [Resolvido]
Dica publicada em PHP / Miscelânea
Laravel 5.4: erro ao rodar o comando migrate (Specified key was too long error) [Resolvido]
Na versão 5.4 do Laravel, foi alterado o character set padrão para utf8mb4, para suportar o armazenamento de emojis no banco de dados. Se você estiver rodando uma versão do MySQL anterior a 5.7.7 ou MariaDB anterior a 10.2.2, ao executar o comando migrate irá retornar o seguinte erro:
E porque 191 no tamanho padrão da String? Mais informações no link abaixo:
[Illuminate\Database\QueryException]Para resolver esse erro você deverá configurar o default string length manualmente, acessando o arquivo App/Providers/AppServiceProvider.php e chamando o método Schema::defaultStringLength(191). O arquivo ficará assim:
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
use Illuminate\Support\Facades\Schema;
public function boot()
{
Schema::defaultStringLength(191);
}
public function boot()
{
Schema::defaultStringLength(191);
}
E porque 191 no tamanho padrão da String? Mais informações no link abaixo: