ホームページ >データベース >mysql チュートリアル >Laravel移行エラーを修正する方法:一意のキーの長さを超えていますか?
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 サイトの他の関連記事を参照してください。