首页 >后端开发 >php教程 >如何修复 Laravel 迁移中的'指定密钥太长”错误?

如何修复 Laravel 迁移中的'指定密钥太长”错误?

DDD
DDD原创
2024-10-30 22:44:03782浏览

How to Fix

修复 Laravel 迁移中的“指定密钥太长”错误

在 Laravel 中迁移表时,开发者可能会遇到“指定密钥太长”的问题太长”的错误。这是因为 MySQL 中键的默认最大长度是 767 字节。

一种解决方案是在迁移中显式指定键长度。例如:

Schema::create('users', function(Blueprint $table) {
    $table->increments('id');
    $table->string('email', 250)->unique('users_email_unique');
});

Laravel 5.4 及以上

在 Laravel 5.4 及以上,可以在 AppServiceProvider.php 文件中设置默认字符串长度:

<code class="php">use Illuminate\Database\Schema\Builder;

public function boot()
{
    Builder::defaultStringLength(191);
}</code>

或者,您可以指定迁移中各个列的长度:

<code class="php">Schema::create('users', function(Blueprint $table) {
    $table->increments('id');
    $table->string('email', 191)->unique('users_email_unique');
});</code>

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

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