Laravel 移行: 「一意のキーが長すぎます」エラーのトラブルシューティング
Laravel 移行の「一意のキーが長すぎます」エラーは、一意のキーが長すぎる場合に発生します。インデックスは、許可される最大長を超えるキーを使用しようとします。このエラーは、電子メール アドレスなどの大きなデータ型を持つ列に一意のインデックスを定義するときに発生する可能性があります。
この問題を解決するには、次の解決策を検討してください:
1.列の長さを短くします:
1 つの方法は、問題の列に短い長さを指定することです。たとえば、提供された移行では、電子メール列は 320 文字の長さで定義されています。このエラーを解決するには、この長さをメール列のデフォルトの長さである 250 文字に減らしてみてください。
2.デフォルトの文字列長をオーバーライドする (Laravel 5.4):
Laravel 5.4 を使用している場合は、次の手順を使用してデフォルトの文字列長をオーバーライドできます:
<code class="php">use Illuminate\Database\Schema\Builder; public function boot() { Builder::defaultStringLength(191); }</code>
このコードは、デフォルトの文字列長を 191 文字に設定します。これは、ほとんどの場合に十分な長さです。
3.主キーの大きなインクリメントを有効にする:
エラーが解決しない場合は、テーブルの主キーが自動インクリメントに設定されているかどうかを確認してください (通常は、increments('id') として定義されます)。その場合は、次のように「大きな整数」自動インクリメント (bigIncrements('id')) に変換してみてください。
<code class="php">$table->bigIncrements('id');</code>
この変更により、主キーがより大きな値に対応できるようになり、一部の領域が解放される可能性があります。インデックス内のスペース。
4.他のインデックスとキーを確認します:
最大キー長違反の原因となる可能性のある他のインデックスやキーがテーブル上にないことを確認します。存在する場合は、それらのインデックスを削除または変更して、インデックス領域のスペースを解放してみてください。
これらの解決策を実装することで、「一意のキーが長すぎます」エラーを解決し、目的の一意のキーを正常に作成できるはずです。データベーステーブルのインデックス。
以上がLaravel の移行で「一意のキーが長すぎます」エラーを修正する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。