Può capitare, su una installazione nuova di Laravel (v.8.8.*) su db MySql (5.7.41 – MySQL Community Server) di ricevere in fase di migration (php artisan migrate) il seguente errore:
“SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes (SQL: alter table
“personal_access_tokens
add index personal_access_tokens_tokenable_type_tokenable_id_index
(tokenable_type
, tokenable_id
))
Il database è stato creato con il seguente comando SQL
“CREATE DATABASE IF NOT EXISTS
“mydb
DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
Per risolvere il problema è sufficiente specificare, all’interno del file “/config/database.php” il tipo di db engine in uso, modificando così il file
“
‘mysql’ => [
‘driver’ => ‘mysql’,
‘url’ => env(‘DATABASE_URL’),
‘host’ => env(‘DB_HOST’, ‘127.0.0.1’),
…
‘charset’ => ‘utf8mb4’,
‘collation’ => ‘utf8mb4_unicode_ci’,
…
‘engine’ => ‘InnoDB’, /* questa riga qui! /*
…
],
Fatta questa modifica, è sufficiente aggiornare la configurazione con i comandi
php artisan config:clear
php artisan config:cache