Skip to main content
+234 803-795-2621
Wed, 08/02/2017 - 14:07

Laravel 5.4 error: Specified key was too long

Laravel 5.4 made a change to the default database character set, and it’s now utf8mb4 which includes support for storing emojis (ideagrams and smileys used in electronic messages and web pages). This only affects new applications and as long as you are running MySQL v5.7.7 and higher you do not need to do anything.

But for those running MariaDB or older versions of MySQL you may hit this error when trying to run migrations:

Laravel error message

 

As outlined in the Migrations guide, to fix this all you have to do is edit the AppServiceProvider.php” file.

Step 1: Locate the file by browsing through the directory as thus app/Providers/AppServiceProvider.php

 

Step 2: Locate the boot method and set a default string length to any preferred value, but the value shouldn’t exceed 255 which is the maximum character value for varchar data type.

Below shows a sample code

use Illuminate\Support\Facades\Schema;
public function boot()

{
    Schema::defaultStringLength(200);
}

 

Laravel Solution to error

After that everything should work perfectly.

Method 2, will be discussed in our next blog post.

Category

Are you ready to take your business global?

Request a quote
click here.