Laravel usa o conjunto de caracteres utf8mb4 por padrão, que inclui suporte para armazenar “emojis” no banco de dados. Se você estiver executando uma versão do MySQL mais antiga do que a versão 5.7.7 ou MariaDB anterior à versão 10.2.2, talvez seja necessário configurar manualmente o comprimento da string padrão gerado pelas migrações para que o MySQL crie índices para elas. Você pode configurar isso chamando o método Schema::defaultStringLength no AppServiceProvider:
Para resolver isso siga os passos abaixo:
Edite o arquivo app\Providers\AppServiceProvider.php
Adicione o namespace use Illuminate\Support\Facades\Schema;
Dentro do método boot adicione Schema::defaultStringLength(191)
use Illuminate\Support\Facades\Schema;
public function boot()
{
Schema::defaultStringLength(191);
}
SQLSTATE 42000: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes com PHP
14 de July de 2020
Errors, Laravel
No Comments
adrianoApi
Laravel usa o conjunto de caracteres utf8mb4 por padrão, que inclui suporte para armazenar “emojis” no banco de dados. Se você estiver executando uma versão do MySQL mais antiga do que a versão 5.7.7 ou MariaDB anterior à versão 10.2.2, talvez seja necessário configurar manualmente o comprimento da string padrão gerado pelas migrações para que o MySQL crie índices para elas. Você pode configurar isso chamando o método Schema::defaultStringLength no AppServiceProvider:
Para resolver isso siga os passos abaixo:
Fonte: https://pt.stackoverflow.com/questions/245432/sqlstate-42000-syntax-error-or-access-violation-1071-specified-key-was-too-lon