はじめに
コンフリクトが起こった際に、下記の内容を修正したので、備忘録としてまとめました。
・Gemファイルのインストール&アンイストールの手順(コンフリクトの原因)
・ActiveRecord::PendingMigrationErrorの対応手順
※コンフリクトの状況を確認する方法は、この記事には記載しておりません。
状況
作業ブランチで編集したのち、プルリクを出したらコンフリクト
(しかもGemファイル!Gemファイル修正したら次のエラー!)
環境
Rails 6.1.2.1
手順
①コンフリクトの状況を確認する
コンフリクトの解消手順は、この記事を参考にすすめました。(わかりやすかったです。)
-Git コンフリクト解消手順
②Gemのインストール
・インストール済みのGemの確認(差分がないか確認)
$ gem list
・導入したいGemをインストール
$ gem install gemの名前
導入後、必ずrails sで、起動確認しよう
③Gemのアンインストール
・削除したいGemをアンインストール
$ bundle exec gem uninstall gem名
・次にGemfileから直接削除する
$ bundle install
・Gemfile.lockを確認すると、消えています。
これで、Gemの修正は完了です
④ActiveRecord::PendingMigrationErrorの対応
さて、これでプルリクだそうと起動確認すると、下記のエラーあり。
・なぜこのエラーが起こるのか?
データベースの整合性が取れていないため、起こるエラーです。
エラー文をよく読むと、解決方法も一緒に示しています。
(なんて親切なんでしょう!)
・エラー文どおり、下記を実行
$ bin/rails db:migrate RAILS_ENV=development
・実行結果
○○○○○@xxxxxx % bin/rails db:migrate RAILS_ENV=development
== 20210403052917 CreateReads: migrating ======================================
-- create_table(:reads)
-> 0.0536s
-- add_index(:reads, [:user_id, :text_id], {:unique=>true})
-> 0.0014s
== 20210403052917 CreateReads: migrated (0.0553s) =============================
エラー文を焦らず、きちんと読んだので対応できました