首页  >  文章  >  后端开发  >  如何修复“即使指定了唯一密钥也太长”Laravel 迁移错误?

如何修复“即使指定了唯一密钥也太长”Laravel 迁移错误?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-01 04:48:02873浏览

How to Fix

Laravel 迁移错误:“唯一键太长,即使指定”

为列创建唯一键时可能会出现 Laravel 迁移错误超过允许的最大长度。在给定场景中,用户在尝试迁移包含长度为 320 个字符的电子邮件列的用户表时遇到此问题。

错误消息表明指定的键(电子邮件)太长,最大密钥长度为 767 字节。为了解决这个问题,推荐的解决方案是减少 email 列的长度。

Laravel 中字符串列的默认长度是 250 个字符。通过将电子邮件列设置为此长度,迁移应该会成功,并且不会出现唯一密钥长度错误。或者,可以根据应用程序的具体要求将电子邮件列设置为较小的长度。

对于 Laravel 5.4 及更高版本,可以使用额外的解决方案。通过编辑AppServiceProvider.php文件并在boot方法中设置一个默认字符串长度,可以调整所有字符串列的最大长度。

通过将Builder::defaultStringLength设置为较小的值,例如191 ,错误应该已解决,并且迁移可以成功进行。

以上是如何修复“即使指定了唯一密钥也太长”Laravel 迁移错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn