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

Laravel移行エラー:「一意のキーの長さが制限を超えています」を修正する方法は?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-05 17:52:11894ブラウズ

Laravel Migration Error: How to Fix

Laravel 移行エラー: 一意のキーの長さが制限を超えています

移行を使用して Laravel のユーザー テーブルを移行しようとすると、開発者は次のような問題に遭遇する可能性があります。エラー: "[SQLSTATE[42000]: 構文エラーまたはアクセス違反: 1071 が指定されましたキーが長すぎました。キーの最大長は 767 バイトです。」このエラーは通常、指定された一意のキーが最大許容長を超えている場合に発生します。

問題の説明

提供された移行では、一意のキーを使用してユーザー テーブルを作成しようとします。メール欄に。ただし、電子メール列の長さは 320 文字に指定されており、最大長制限を超えています。

解決策

1.電子メールの列の長さを減らす

電子メールの列の長さを、250 文字やデフォルトの 191 文字などの小さい値に短縮します。次のように移行を調整します:

Schema::create('users', function(Blueprint $table)
{
    // ...

    $table->string('email', 250); // Update the email column length

    // ...
});

2.デフォルトの文字列長の設定 (Laravel 5.4 )

Laravel 5.4 以降を使用している場合は、AppServiceProvider.php ファイルのブート メソッドでデフォルトの文字列長を設定できます:

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

これにより、移行で作成されるすべての文字列列のデフォルトの長さが 191 文字に設定され、一意のキーが許容される長さを超えています。

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

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