Ugrás a tartalomra

DEV Frissítve:

SQLSTATE[42000] 1071: Specified key was too long

Régi MySQL / MariaDB és utf8mb4 esetén az indexelt string mező 255 helyett csak 191 karakter lehet.

Tünet migráláskor:

Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes
(SQL: alter table `users` add unique `users_email_unique`(`email`))

Ok: utf8mb4 mellett egy karakter 4 bájt; a régi MyISAM / régi InnoDB indexkorlátba a 255 karakteres oszlop nem fér bele.

Megoldás 1 — alapértelmezett stringhossz

AppServiceProvider::boot():

use Illuminate\Support\Facades\Schema;

public function boot(): void
{
    Schema::defaultStringLength(191);
}

Megoldás 2 — InnoDB motor

config/database.php → mysql:

'engine' => 'InnoDB',

Majd (csak üres / teszt adatbázison!):

php artisan config:clear
php artisan db:wipe
php artisan migrate