【Laravel】「users」及び「password_resets」のマイグレーションを実行するとエラーが発生

環境
OS: Windows7(XAMPP環境)
MariaDB(mysql): 10.1.24(≒5.6 ?)
Laravel: 5.4.27

Laravelで初期に準備されている「users」及び「password_resets」のマイグレーションを実行したところ以下のエラーが発生しました。

[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))

[PDOException]
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes

これはユニークキー(インデックス)として設定している「email」カラムが767バイトを超えてしまっている為に発生しているようです。

そこであらかじめ準備されていたマイグレーションファイルに直接変更を加えて対処しました。

database\migrations
配下にある以下の2つのファイルの
2014_10_12_000000_create_users_table.php
2014_10_12_100000_create_password_resets_table.php

emailの記述部分に長さの指定(191文字)を指定しました。

これによりemailのバイト数が767を超えなくなるので無事マイグレーションが実行できました。
この記事は役に立ちましたか?
  • 役に立った(2)
  • もっと詳しい情報が必要(0)
  • 情報が古かった(0)
  • 目的の情報では無かった(0)

シェアする

  • このエントリーをはてなブックマークに追加

フォローする