我是Laravel的新手,试图使用Laravel可用的软件包,但它在迁移时给我一个错误 - > " [照亮\数据库\ QueryException]
SQLSTATE [42000]:语法错误或访问冲突:1071指定密钥太长;最大密钥长度为1000字节(SQL:alter table media
添加唯一media_disk_directory_filen
ame_extension_unique
(disk
,directory
,filename
,extension
))< / p>
[PDOException] SQLSTATE [42000]:语法错误或访问冲突:1071指定密钥太长;最大密钥长度为1000字节&#34;
我在Laravel 5.4.36上,其他网站上的解决方案是添加这个 - &gt;
public function boot()
{
//
Schema::defaultStringLength(191);
}
但我的项目已经有了这个。
任何人都可以帮忙吗?
答案 0 :(得分:2)
您可以尝试通过在engine
配置文件中加入config/database.php
值来解决此问题:
'engine' => 'InnoDB ROW_FORMAT=DYNAMIC',
如果您想使用此修复程序:
Schema::defaultStringLength(191);
确保您已在config/app.php
答案 1 :(得分:0)
这项工作对我来说, 在config / database.php里面 我取代了这个 'engine'=&gt;空值', 用: engine'=&gt; 'InnoDB ROW_FORMAT = DYNAMIC',
此解决方案而不是对字符串长度设置限制。