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

 


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

txt2tags - convertendo texto em notações especiais

Site com bons recursos para Joomla

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

Testes Unitários - Um olhar para a qualidade de nossos testes

Como hospedar projetos no SourceForge.net

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário