##rails db:migrateを実行した際のエラー
rails db:migrate
を実行すると
以下のエラーが出ました!
StandardError: An error has occurred, all later migrations canceled:
直訳すると以後の全てのマイグレーションでエラーが発生しキャンセルされましたという内容です。
更に、こんなエラーも出ています。
Mysql2::Error: Specified key was too long; max key length is 767 bytes
こちらのエラーは指定したキーが長すぎるためエラーが発生しているようです。
maxのkeyの長さは767bytesのようです。
##今回のエラーの仮説
keyの長さがmax767バイトなのに対し、keyが長すぎたためエラーが発生しているようです。
railsでデフォルトで生成される255文字のVARCHER型の場合、
◎utf8mb4は1文字4バイト、
255×4バイト= 1020バイト
767バイトを超えてしまうためエラーが発生してしまいます。
##解決法
文字コードの指定をutf8に変える
◎utf8は1文字3バイト、
255×3バイト= 765バイト
ほぼぴったり収まるためこれで解決できます!
database.yml
default: &default
encoding: utf8
bundle install
をし、rails s
で再起動をします!
その後、
$ rails db:migrate:reset
これで無事にマイグレーションされました!