はじめに
1月〜プログラミングスクールで学習しています。
これから平日は~3/25まで毎日何かしらアウトプットのため投稿を続ける予定です。
今回は rails db:migrateコマンドを実行した際に出たエラーについて書きます。
※Ruby2.6.5の環境を使用し学習しています。
問題
rails db:migrateコマンドを実行すると下記エラーが出ました。
ただ、思い当たる節が合ったためすぐに解決することができました。
ターミナル
% rails db:migrate
== 20220310072650 DeviseCreateUsers: migrating ================================
-- create_table(:users)
-> 0.0159s
-- add_index(:users, :email, {:unique=>true})
rails aborted!
StandardError: An error has occurred, all later migrations canceled:
解決
database.ymlのエンコードがutf8になっていないことに気付き修正しました。
config/database.yml
default: &default
adapter: mysql2
encoding: utf8 #utf8mb4から修正
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
username: root
password:
socket: /tmp/mysql.sock
その後、rails db:resetコマンド実行し、無事マイグレートが完了しました。
ターミナル
% rails db:migrate:reset
Dropped database 'pfc_control_development'
Dropped database 'pfc_control_test'
Created database 'pfc_control_development'
Created database 'pfc_control_test'
== 20220310072650 DeviseCreateUsers: migrating ================================
-- create_table(:users)
-> 0.0134s
-- add_index(:users, :email, {:unique=>true})
-> 0.0136s
-- add_index(:users, :reset_password_token, {:unique=>true})
-> 0.0171s
== 20220310072650 DeviseCreateUsers: migrated (0.0443s) =======================
encodingに関しては忘れそうなのでメモ程度ですが残しておきます。
それでは〜