PDOException::("SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes") laravel 8
// Update your /app/Providers/AppServiceProvider.php to contain:
use IlluminateSupportFacadesSchema;
public function boot()
{
Schema::defaultStringLength(191);
}
//ON this error
// PDOException::("SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'users' already exists")
// After run -> php artisan migrate:fresh <- ! Note this will reset all tables in db
Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes (SQL: alter table `users` add index `users_userable_type_userable_id_index`(`userable_type`, `userable_id`)
Update your /app/Providers/AppServiceProvider.php to contain:
use IlluminateSupportFacadesSchema;
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
Schema::defaultStringLength(191);
}
Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes (SQL: alter table
Path : App/Providers/AppServiceProvider
Schema::defaultStringLength(191);
in AppServiceProvider didn't work for me. What worked for was editing the database.php file in config folder. Just edit
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
to
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
and it should work, although you will be unable to store extended multibyte characters like emoji.
Syntax error or access violation: 1071 Specified key was too long;
// Para resolver isso siga os passos abaixo:
// Edite o arquivo appProvidersAppServiceProvider.php
// Adicione o namespace use IlluminateSupportFacadesSchema;
// Dentro do método boot adicione Schema::defaultStringLength(191);
// Resultado final do arquivo:
use IlluminateSupportFacadesSchema;
public function boot()
{
Schema::defaultStringLength(191);
}
violation: 1071 Specified key was too long; max key length is 1000 bytes
Inside config/database.php, replace this line for mysql
Copy Code
'engine' => null',
with
Copy Code
'engine' => 'InnoDB ROW_FORMAT=DYNAMIC',
Instead of setting a limit on your string lenght.
Syntax error or access violation: 1071 Specified key was too long; max key length
According to the official Laravel 7.x documentation, you can solve this quite easily.
Update your /app/Providers/AppServiceProvider.php to contain:
use IlluminateSupportFacadesSchema;
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
Schema::defaultStringLength(191);