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

 


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

Cursos gratuitos online de PHP orientado a objetos

Criando um módulo para o logotipo no Joomla 1.5

Como hospedar projetos no SourceForge.net

Ubuntu 10.04: Interpretação de arquivos PHP nas pastas pessoais

Framework CakePHP - Novo site em português

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts