[报错:字符太长] SQLSTATE [42000]: Syntax error or access violation: 1071 Specified key was t oo long;
情景:执行php artisan migrate 报错
Laravel utf8mb4默认使用字符集,其中包括支持在数据库中存储“emojis”。如果您运行的是早于5.7.7版本的MySQL版本或早于10.2.2版本的MariaDB,您可能需要手动配置迁移生成的默认字符串长度,以便MySQL为它们创建索引。您可以通过调用以下方法中的方法来配置:Schema::defaultStringLengthAppServiceProvider
use Illuminate\Support\Facades\Schema;
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
Schema::defaultStringLength(191);
}
或者,您可以innodb_large_prefix
为数据库启用该选项。有关如何正确启用此选项的说明,请参阅数据库的文档。
参考地址
本作品采用《CC 协议》,转载必须注明作者和本文链接