[解決済み] Laravelマイグレーション:ユニークキーが指定されても長すぎる
2022-04-17 23:31:19
質問
Laravelでusersテーブルをマイグレートしようとしています。マイグレーションを実行すると、このエラーが発生します。
[IlluminateDatabase QueryException] SQLSTATE[42000]: 構文エラー またはアクセス違反があります。1071 指定されたキーが長すぎました。 は767バイト(SQL: alter table
users
を追加し、一意の ユーザ名_メールアドレス_uniq(
私のマイグレーションは以下の通りです。
Schema::create('users', function(Blueprint $table)
{
$table->increments('id');
$table->string('name', 32);
$table->string('username', 32);
$table->string('email', 320);
$table->string('password', 64);
$table->string('role', 32);
$table->string('confirmation_code');
$table->boolean('confirmed')->default(true);
$table->timestamps();
$table->unique('email', 'users_email_uniq');
});
ググってみたら
このバグレポート
の2番目のパラメータとしてインデックスキーを指定することができるとTaylorは言っています。
unique()
私はそれを実行しました。それでもエラーになります。どうなっているのでしょうか?
解決方法は?
メールの長さを小さく指定してください。
$table->string('email', 250);
実は、これがデフォルトなんです。
$table->string('email');
そして、あなたは良いはずです。
Laravel 5.4では、次のような解決策が見つかります。 Laravel 5.4:指定されたキーが長すぎるエラー、Laravelニュース の投稿をご覧ください。
この問題を解決するには、Migrations guideにあるように、AppServiceProvider.phpファイルを編集し、bootメソッド内でデフォルトの文字列長を設定するだけでよいのです。
use Illuminate\Database\Schema\Builder;
public function boot()
{
Builder::defaultStringLength(191);
}
関連
-
[解決済み】Fatal error: 未定義の関数 sqlsrv_connect() を呼び出した。
-
[解決済み] 整形されていない数値が発生しました。
-
[解決済み】Apache + PHPで「ヘッダの前にスクリプトの出力が終了する」件
-
[解決済み】「Fatal error: Class 'MySQLi' not found "を解決するには?
-
[解決済み】メッセージ。Trying to access array offset on value of type null [重複]配列のオフセットにアクセスしようとしています。
-
[解決済み] [Solved] Fatal error: メンバ関数 query() の null への呼び出し。
-
[解決済み】In_arrayが動作しない。
-
[解決済み] mysqli_fetch_assoc() は、パラメータ 1 が mysqli_result であることを期待し、boolean が与えられる [重複] 。
-
[解決済み] PHP と mod_fcgid: handle_request_ipc 関数で ap_pass_brigade が失敗する。
-
[解決済み】Laravelのマイグレーションエラーです。シンタックスエラーまたはアクセス違反です。1071 指定されたキーが長すぎる。キーの最大長は767バイトです。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】XAMPPポート80をPID 4の「Unable to open process」が使用中 [重複] XAMPPポート80をPID 4の「Unable to open process」が使用中。]
-
[解決済み】XAMPPのphpMyAdminで「設定にあるcontroluserの接続に失敗しました。
-
[解決済み】MySQLエラー#1071 - 指定されたキーが長すぎる; キーの最大長は767バイトです。
-
[解決済み】警告:mysql_fetch_array()はパラメータ1がリソースであることを期待、ブール値は[重複]で与えられる]
-
[解決済み】phpMyAdmin: シークレットパスフレーズ?
-
[解決済み] PHP - ストリームを開くのに失敗しました : そのようなファイルまたはディレクトリがありません。
-
[解決済み】In_arrayが動作しない。
-
[解決済み】Fatal error: mysqli_result 型のオブジェクトは使用できません [終了] 。
-
[解決済み] オートロードとは何ですか; spl_autoload、__autoload、spl_autoload_register はどのように使うのですか?
-
[解決済み] PHP product.php?id=1 のような URL を作成する方法