Laravel5.7 migrateエラー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`))

Laravel5.7でmigrateしたらエラーメッセージが出たので対応を記録しておきます。

原因はMySQLのバージョンによってインデックスキーの最大長が違います。Laravelの最近のバージョンでは絵文字対応がされた事で、インデックスの最大長が767バイトを超えたそうです。それによって古いMySQLだと入らないそうです。

自分が取った対応としては、出来ればMySQLの設定で拡張したかったのですが、増やす事が出来ず、app/Providers/AppServiceProvider.phpの中でvarcharを191バイトまでにしました。

といってもvarcharで191バイトも先ず使わないはずなのでこれで問題ないと思います。

スポンサーリンク

参考サイト様

https://blog.e2info.co.jp/2017/04/17/mysql%E3%81%AE%E3%82%A4%E3%83%B3%E3%83%87%E3%83%83%E3%82%AF%E3%82%B9%E3%82%B5%E3%82%A4%E3%82%BA%E3%81%AB767byte%E3%81%BE%E3%81%A7%E3%81%97%E3%81%8B%E3%81%A4%E3%81%8B%E3%81%88%E3%81%AA%E3%81%84/

.