Rails

Unable to load application: LoadError: Error loading the 'postgresql'Error loading the 'postgresql'に対処する

04/03/2023

データベースイメージ(pg is not part of the bundle. Add it to your Gemfile.)
UnsplashJan Antonin Kolarが撮影した写真

チュートリアルの2週目は、Railsのバージョンを最新のものにして進めています。
(Gemfileはテキストとは異なる内容で進めている状態。)

ruby "3.2.1"
"rails", "~> 7.0.4", ">= 7.0.4.2"


3章のデプロイで失敗しました。

赤枠内をクリックするとGithubの修正が必要な個所を確認できます。

原因はこちらに書いてある模様。

! Unable to load application: LoadError: Error loading the 'postgresql' Active Record adapter. Missing a gem it depends on? pg is not part of the bundle. Add it to your Gemfile.
Mar 3 11:08:29 PM  bundler: failed to load command: puma (/opt/render/project/.gems/bin/puma)
Mar 3 11:08:29 PM  /opt/render/project/rubies/ruby-3.2.1/lib/ruby/site_ruby/3.2.0/bundler/rubygems_integration.rb:280:in `block (2 levels) in replace_gem': Error loading the 'postgresql' Active Record adapter. Missing a gem it depends on? pg is not part of the bundle. Add it to your Gemfile. (LoadError)


Railsチュートリアルではdevelopment環境とproduction環境で異なるデータベースを使っていますが、その部分に関してGemfileの記述が足りていませんでした。

それぞれ記述。

group :development, :test do
  # See https://guides.rubyonrails.org/debugging_rails_applications.html#debugging-with-the-debug-gem
  gem "sqlite3", "~> 1.4"
  gem "debug", platforms: %i[ mri mingw x64_mingw ]
end

group :production do
  gem "pg", "1.3.5"
end

そしてターミナルで以下を実行し、再度コミットとプッシュ。

bundle install

エラーは解消され、デプロイできました。

ただ、PostgreSQLをdevelopment環境にインストールして設定できるようになるのが理想とのこと。
ちょっとやってみたいところです。

-Rails
-