0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Mysql2::Error: Specified key was too long; max key length is 767 bytes

Last updated at Posted at 2022-07-03

オリアプを作っている際に見慣れないエラーが発生したので、どう解決したのかを書きます。

エラー発生

サーバーを立ち上げてlocalhost:3000にアクセスしたところ、activerecord::pendingmigrationerrorというエラーが画面に表示されました。
ターミナルを確認してみると、以下のエラーが発生していました。

Mysql2::Error: Specified key was too long; max key length is 767 bytes

原因と解決策

エラー文によると、keyの長さの制限である767byteを超えてしまったようです。
そもそもこれまでアプリを作成した際に発生したことがなかったのでなぜ?と思い過去のアプリを確認したところ、database.ymlにあるutf8mb4utf8に変更することを忘れていました。
どうやらutf8mb4 だと1文字4バイトとなってしまい767バイトを超えてしまうみたいです。

database.yml
  encoding: utf8  #utf8mb4からutf8に変更

上記のように、utf8に変更することでエラー解決できました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?