O meu está dando o seguinte erro:
O meu está dando o seguinte erro:
Olá! Tudo bem?
O erro que você está enfrentando é bastante comum ao usar o MySQL com o Laravel, especialmente quando se trata de versões mais antigas do MySQL que têm um limite de 767 bytes para índices. O erro específico é:
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes
Isso acontece porque a chave que você está tentando criar excede o tamanho máximo permitido pelo MySQL. Aqui estão algumas soluções possíveis para resolver esse problema:
Redefinir o tamanho máximo: Conforme a documentação e outras discussões que já encontrei sobre esse problema, ele é normalmente solucionado adicionando um tamanho restrito no arquivo "/app/Providers/AppServiceProvider.php". No mesmo deve ser adicionado o trecho Schema::defaultStringLength(191);
.
Segue um exemplo de como ficaria:
use Illuminate\Support\Facades\Schema;
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
Schema::defaultStringLength(191);
}
Alterar a codificação de caracteres utilizada: Aqui você pode utilizar de outra codificação, diminuindo assim a quantidade de bytes de armazenamento usados. Mas antes de alterar a codificação você deve rodar o comando php artisan db:wipe
.
Ele é responsável apagar todas as tabelas, visualizações e procedimentos armazenados do banco de dados configurado no arquivo .env. Em outras palavras, ele limpa completamente o banco de dados, deixando-o vazio.
Agora, para alterar a codificação, atualize esses valores (abaixo) do array mysql que está no arquivo "/config/database.php":
'charset' => 'utf8',
'collation' => 'utf8_general_ci',
E então rode:
php artisan migrate
Está feito! As tabelas de migração serão criadas com sucesso.
Espero ter ajudado e bons estudos!