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.901 ]

 


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

Utilizando argumentos padrão em funções no PHP

Como executar PHP no Windows

Backup e restore para sites em Joomla

Criando um gerador de números para Mega-Sena em PHP

Super Scaffold - Crie aplicativos em PHP com MySQL ou PostgreSQL de forma automática

  

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