LoginSignup
0

More than 1 year has passed since last update.

コンフリクトが起こったGemの修正とActiveRecord::PendingMigrationErrorの対応

Last updated at Posted at 2021-05-04

はじめに

コンフリクトが起こった際に、下記の内容を修正したので、備忘録としてまとめました。
・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の修正は完了です:relaxed:

④ActiveRecord::PendingMigrationErrorの対応

さて、これでプルリクだそうと起動確認すると、下記のエラーあり。

スクリーンショット 2021-05-04 13.14.16.png

・なぜこのエラーが起こるのか?

データベースの整合性が取れていないため、起こるエラーです。
エラー文をよく読むと、解決方法も一緒に示しています。
(なんて親切なんでしょう!)

・エラー文どおり、下記を実行

$ 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) =============================

これで無事にrails sで、サーバー起動できました。
スクリーンショット 2021-05-04 14.50.29.png

エラー文を焦らず、きちんと読んだので対応できました:relaxed:

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