ホームページ > データベース > mysql チュートリアル > Laravel移行エラー:「指定されたキーが長すぎます」問題を修正する方法は?

Laravel移行エラー:「指定されたキーが長すぎます」問題を修正する方法は?

Barbara Streisand
リリース: 2024-12-16 04:16:13
オリジナル
875 人が閲覧しました

Laravel Migration Error: How to Fix the

Laravel 移行エラー:「指定されたキーが長すぎました」問題への対処

Laravel 5.4 の phpArtisan make:auth を使用しようとしたときコマンドを実行すると、次のような問題が発生する可能性があります。エラー:

[Illuminate\Database\QueryException]
  SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes
  (SQL: alter table users add unique users_email_unique(email))
ログイン後にコピー

原因:

このエラーは、インデックス キーの長さがデータベース エンジンの最大許容長を超えると発生します。デフォルトでは、MySQL とそのバリアントのインデックス キーの最大長は 767 バイトです。

解決策:

方法 1: アプリケーション サービス プロバイダーを更新する

Laravel の公式ドキュメントで推奨されているように、次のコードをapp/Providers/AppServiceProvider.php ファイル:

use Illuminate\Support\Facades\Schema;

/**
 * Bootstrap any application services.
 *
 * @return void
 */
public function boot()
{
    Schema::defaultStringLength(191);
}
ログイン後にコピー

これにより、すべての移行のデフォルトの文字列の長さが 191 文字に増加しますが、これは許容制限内です。

方法 2: InnoDB ラージ プレフィックスを有効にする

または、ユーザーはMySQL データベースの innodb_large_prefix オプション。このオプションを適切に有効にする方法については、データベースのドキュメントを参照してください。このソリューションでは、より長いインデックス キーを使用できるため、大規模なデータセットにより適しています。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート