Restoration
6/2/2018 - 6:19 PM

SQLSTATE[42000] : Specified key was too long error at migrate command

SQLSTATE[42000] : Specified key was too long error at migrate command

Error

[Illuminate\Database\QueryException] SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table users add unique users_email_unique(email))

[PDOException] SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes

Solution

  • Update to newerst MySQL version
  • Change charaset from utf8mb4
  • Change the maximum value of the column so that the character string of 767 bytes or more is not included
$ find / -name AppServiceProvider.php
$ vim app/Providers/AppServiceProvider.php
use Illuminate\Support\Facades\Schema;

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

Reference link

Laravel 5.4: Specified key was too long error