Laravel:Mediable migration error语法错误或访问冲突:1071指定密钥太长;最大密钥长度为1000字节

时间:2017-12-24 09:35:58

标签: php mysql laravel

我是Laravel的新手,试图使用Laravel可用的软件包,但它在迁移时给我一个错误 - &gt; &#34; [照亮\数据库\ QueryException]   SQLSTATE [42000]:语法错误或访问冲突:1071指定密钥太长;最大密钥长度为1000字节(SQL:alter table media添加唯一media_disk_directory_filen ame_extension_uniquediskdirectoryfilenameextension))< / p>

[PDOException]   SQLSTATE [42000]:语法错误或访问冲突:1071指定密钥太长;最大密钥长度为1000字节&#34;

我在Laravel 5.4.36上,其他网站上的解决方案是添加这个 - &gt;

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

但我的项目已经有了这个。

任何人都可以帮忙吗?

2 个答案:

答案 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',

此解决方案而不是对字符串长度设置限制。