概要
- laravelのマイグレーションファイルの記載で制約を設定したら「name is too long」のエラーが出てマイグレーションができなかったので解決方法をメモ的にまとめる。
エラー内容
-
エラー内容を下記に記載する。
Syntax error or access violation: 1059 Identifier name 'XXXX_YYYY' is too long
-
laravelは制約の名前をテーブル名を用いて自動生成している。
-
テーブル名が長すぎると制約名が長くなりすぎる。そのためエラーが出ていた。
解決方法
-
下記のように制約設定時にメソッドチェーンでnameを指定する。
$table->foreign('XXXX_id')->references('id')->on('XXXXs')->name('hoge_fuga_piyo_id');