Laravel: Mediable migration error 语法错误或访问冲突:1071 Specified key was too long;最大密钥长度为 1000 字节
Posted
技术标签:
【中文标题】Laravel: Mediable migration error 语法错误或访问冲突:1071 Specified key was too long;最大密钥长度为 1000 字节【英文标题】:Laravel: Mediable migration error Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes 【发布时间】:2018-06-06 04:05:55 【问题描述】:我是 Laravel 的新手,尝试使用 Laravel 可媒体包,但它在迁移时给我一个错误 -> “[Illuminate\Database\QueryException]
SQLSTATE[42000]:语法错误或访问冲突:1071 指定的键太长;最大密钥长度为 1000 字节(SQL:alter table media
add unique media_disk_directory_filen
ame_extension_unique
(disk
, directory
, filename
, extension
))
[PDO异常] SQLSTATE[42000]:语法错误或访问冲突:1071 指定的键太长;最大密钥长度为 1000 字节"
我在 Laravel 5.4.36,其他网站的解决方法是添加这个 ->
public function boot()
//
Schema::defaultStringLength(191);
但我的项目中已经有这个了。
有人可以帮忙吗?
【问题讨论】:
【参考方案1】:您可以尝试通过在config/database.php
配置文件中更改engine
值来解决此问题:
'engine' => 'InnoDB ROW_FORMAT=DYNAMIC',
如果你想使用这个修复:
Schema::defaultStringLength(191);
确保您已在 config/app.php
注册此服务提供商
【讨论】:
【参考方案2】:和我一起工作, 在 config/database.php 里面 我替换这个 '引擎' => 空', 和 : 引擎' => 'InnoDB ROW_FORMAT=DYNAMIC',
这个解决方案而不是对你的字符串长度设置限制。
【讨论】:
以上是关于Laravel: Mediable migration error 语法错误或访问冲突:1071 Specified key was too long;最大密钥长度为 1000 字节的主要内容,如果未能解决你的问题,请参考以下文章
我在 Laravel 迁移基础视图/表中找不到奇怪的错误 1146