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 サイトの他の関連記事を参照してください。