Laravel migrations – 1071 Specified key was too long


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

Pubblicità

Rispondi

Effettua il login con uno di questi metodi per inviare il tuo commento:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s…

%d blogger hanno fatto clic su Mi Piace per questo: