MENU

【備忘録】【rails6】Gemアンイストール後のHerokuデプロイエラー

★環境
 Ruby:3.0.2
 Rails:6.1.4.4

目次

エラーが発生した背景

認証機能(ログイン機能)用のGem「devise」をアンイストールして、Herokuにデプロイしたらエラーが発生しました。

Herokuへのデプロイエラー

-----> Building on the Heroku-20 stack
-----> Using buildpack: heroku/ruby
-----> Ruby app detected
-----> Installing bundler 2.2.33
-----> Removing BUNDLED WITH version in the Gemfile.lock
-----> Compiling Ruby/Rails
-----> Using Ruby version: ruby-3.0.2
-----> Installing dependencies using bundler 2.2.33
       Running: BUNDLE_WITHOUT='development:test' BUNDLE_PATH=vendor/bundle BUNDLE_BIN=vendor/bundle/bin BUNDLE_DEPLOYMENT=1 bundle install -j4
       You are trying to install in deployment mode after changing
       your Gemfile. Run `bundle install` elsewhere and add the
       updated Gemfile.lock to version control.
       
       If this is a development machine, remove the /tmp/build_cca2383a/Gemfile freeze 
       by running ``.
       
       You have deleted from the Gemfile:
       * devise
       Bundler Output: You are trying to install in deployment mode after changing
       your Gemfile. Run `bundle install` elsewhere and add the
       updated Gemfile.lock to version control.
       
       If this is a development machine, remove the /tmp/build_cca2383a/Gemfile freeze 
       by running ``.
       
       You have deleted from the Gemfile:
       * devise
 !
 !     Failed to install gems via Bundler.
 !
 !     Push rejected, failed to compile Ruby app.
 !     Push failed

<原因>アンイストールが不十分だった

このエラーの理由は単純でした。

Gem「devise」のアンイストールが不十分だったからです。

もう少し具体的に言えばファイル「Gemfile」から「gem ‘devise’」を削除しましたが、肝心の「bundle install」を実行してませんでした。

私がRailsに慣れていなかったので、こんな単純なミスをしてしまいました。

Gemのアンイストール方法は2通りあって、今回のように「Gemfile」を変更(gemの追加や削除)してから「bundle install」を実行する方法と、個別にコマンドで「bundle exec gem uninstall gem名 -v ‘バージョン名’」を実行する方法があります。

アンイストールすると「Gemfile.lock」が反映されますので、それをHerokuにデプロイしたらエラーなく成功しました。

<参考>

Qiita
【Rails】gemのアンインストール・バージョン変更 - Qiita Gemのアンインストール方法バージョンを指定することも可。$ bundle exec gem uninstall gem名 -v 'バージョン名'後は、Gemfileから直接削除し、bundl…
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

目次