Laravel 5.4: erro ao rodar o comando migrate (Specified key was too long error) [Resolvido]

Publicado por walmick em 28/03/2017

[ Hits: 2.700 ]

 


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:

[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
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:

use Illuminate\Support\Facades\Schema;

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

E porque 191 no tamanho padrão da String? Mais informações no link abaixo:
Outras dicas deste autor
Nenhuma dica encontrada.
Leitura recomendada

Curso gratuito sobre criação de aplicativos em PHP

Projeto SER disponível

Joomla 3.6.x - Resolvendo problema com instalação de extensões

Ícones livres para sistemas web

PHP na linha de comando

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts