ホームページ >データベース >mysql チュートリアル >Laravel移行エラーを修正する方法:一意のキーの長さを超えていますか?

Laravel移行エラーを修正する方法:一意のキーの長さを超えていますか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-01 16:31:10275ブラウズ

How to Fix Laravel Migration Error: Unique Key Length Exceeded?

Laravel 移行エラーのトラブルシューティング: 一意のキーの長さを超えました

Laravel でメール列の一意のキーを作成しようとすると、次のような問題が発生する場合があります。次のエラー:

[IlluminateDatabaseQueryException] SQLSTATE[42000]: 構文エラーまたはアクセス違反: 1071 指定されたキーが長すぎます。キーの最大長は 767 バイトです

unique() メソッドの 2 番目のパラメーターとしてインデックス キーを指定しましたが、エラーが継続します。これは、メール列の長さが原因である可能性があります。

Laravel バージョン 5.4 より前の解決策:

このエラーを解決するには、メール列の長さを減らしてください。 。デフォルトの長さは 250 文字であるため、移行で次の行を変更します:

$table->string('email', 250);

または、デフォルトの長さを使用できます:

$table->string('email');

Laravel 5.4 のソリューション以上:

Laravel 5.4 では、このエラーを回避するには、デフォルトの文字列長を変更してください。 AppServiceProvider.php ファイルで、次のコードをブート メソッドに追加します。

use Illuminate\Database\Schema\Builder;

public function boot()
{
    Builder::defaultStringLength(191);
}

これにより、すべての文字列列で最大 191 文字が使用されるようになります。

以上がLaravel移行エラーを修正する方法:一意のキーの長さを超えていますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。