Laravel 5.6: Specified key was too long error

Laravel 5.6: Specified key was too long errorphp

在Laravel执行如下命令:数据库

php artisan migrate

这是因为Laravel5.6设置了数据库默认编码,如今的编码默认为“utf8mb4”(支持emoji),app

 

开始查看了官网是这么说的:ide

“applications and as long as you are running MySQL v5.7.7 and higher you do not need to do anything.”编码

若是MySQL版本大于5.7.7就能够了,发现不行……spa

仍是报:code

[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))blog

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

 

因此仍是按照Migrations的文档老老实实的修改吧:文档

打开 AppServiceProvider.php 文件写入以下:

use Illuminate\Support\Facades\Schema;

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

在从新执行

php artisan migrate

成功!!!

相关文章
相关标签/搜索