[laravel5.6]SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long

sisophon 2019-12-07 PM 71℃ 0条

使用环境版本:

laraverl:5.6
mysql: 5.7.27
php:7.2.20

在进行数据迁移时候报错: 特殊字段太长报错:

php artisan  migrate

Laravel 默认使用 utf8mb4 字符,它支持在数据库中存储 "emojis" 。
如果你是在版本低于 5.7.7 的 MySQL release 或者版本低于 10.2.2 的 MariaDB release 上创建索引,那就需要你手动配置迁移生成的默认字符串长度。
即在 AppServiceProvider(app/Providers/AppServiceProvider.php) 中调用 Schema::defaultStringLength 方法来配置它 :

/**
 * Bootstrap any application services.
 *
 * @return void
 */
public function boot()
{
    //
    Schema::defaultStringLength(191);
}

或者,你可以开启数据库的 innodb_large_prefix 选项。 至于如何正确开启,请自行查阅数据库文档。

标签: PHP

非特殊说明,本博所有文章均为博主原创。

评论啦~