Pular para o conteúdo

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

Dica publicada em PHP / Miscelânea
walmick walmick
Hits: 3.610 Categoria: PHP Subcategoria: Miscelânea
  • Indicar
  • Impressora
  • Denunciar

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:
Nenhuma dica encontrada.

Criando um contator de visitas para seu site (PHP grava no TXT)

PHP na linha de comando no Debian

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

Minificar saída HTML usando PHP

Ícones livres para sistemas web

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.