オリアプを作っている際に見慣れないエラーが発生したので、どう解決したのかを書きます。
エラー発生
サーバーを立ち上げてlocalhost:3000にアクセスしたところ、activerecord::pendingmigrationerrorというエラーが画面に表示されました。
ターミナルを確認してみると、以下のエラーが発生していました。
Mysql2::Error: Specified key was too long; max key length is 767 bytes
原因と解決策
エラー文によると、keyの長さの制限である767byteを超えてしまったようです。
そもそもこれまでアプリを作成した際に発生したことがなかったのでなぜ?と思い過去のアプリを確認したところ、database.ymlにあるutf8mb4
をutf8
に変更することを忘れていました。
どうやらutf8mb4
だと1文字4バイトとなってしまい767バイトを超えてしまうみたいです。
database.yml
encoding: utf8 #utf8mb4からutf8に変更
上記のように、utf8に変更することでエラー解決できました。