Linux

【PHP】laravelのマイグレーション時に「1071 Specified key was too long; max key length is 767 bytes」のエラー対処

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

はじめに

laravelのマイグレーションコマンド「php artisan migration」実行時「1071 Specified key was too long; max key length is 767 bytes」のエラーが発生しました。
原因は文字コード(utf8mb4)によるString型のカラムのデータ長が767バイトの制限を超えるのが原因らしいです。
対処方法は、String型の最大長を指定して制限(191バイト)をかけます。

手順

app\Providers\AppServiceProvider.phpを編集し、boot内に以下の1行を付け足します。

public function boot()
    {
        \Illuminate\Support\Facades\Schema::defaultStringLength(191);
    }

まとめ

今回の環境は、MySQL5.5+laravel6.04です。
日本語使用(utfmb4)でlaravelでマイグレーションする時、必ず発生する問題です。
MySQL5.7.7以降(正式には5.7.9以降)では、発生しないので今回の作業は不要です。

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

ブログ記事について

ブログ記事は基本、毎週月曜日午前中に発信!(ニュース関連については随時)
記事に価値があると感じましたら、応援をお願いいたします!

公式ホームページについて

当ブログではITエンジニア関連のテクニカルな事、そして様々な商品のレビュー記事を公開しています。
一方ホームページでは、それ以外の少しビジネス寄り(企業や個人事業主向け)のサービスや情報を発信します。

該当される方、ご興味のある方はホームページの方もご参照ください。

コメントを残す

*