質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

2回答

2745閲覧

Herokuへデプロイ後、ローカルサーバーが開かない

_tonton_

総合スコア4

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2020/08/03 23:39

編集2020/08/04 02:04

前提・実現したいこと

HerokuへGit経由でデプロイしたのち、
開発を進めたいのですが、ローカルサーバーが利用できません。
本番環境へデプロイするとローカルは使えなくなりますか?

発生している問題・エラーメッセージ

rails sを実行すると出るエラー

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)

試したこと

  • Gemgileに「gem 'pg'」の記載があり、デプロイ前にmigrateしました。
  • ファイルのキャッシュを消す方法を試しました。

  「git rm -r --cached .」

  • Gemfileは以下の通りです

ruby

1source 'https://rubygems.org' 2git_source(:github) { |repo| "https://github.com/#{repo}.git" } 3 4ruby '2.6.5' 5 6# Bundle edge Rails instead: gem 'rails', github: 'rails/rails' 7gem 'rails', '~> 6.0.0' 8# Use Puma as the app server 9gem 'puma', '~> 4.1' 10# Use SCSS for stylesheets 11gem 'sass-rails', '>= 6' 12# Transpile app-like JavaScript. Read more: https://github.com/rails/webpacker 13gem 'webpacker', '~> 4.0' 14# Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks 15gem 'turbolinks', '~> 5' 16# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder 17gem 'jbuilder', '~> 2.7' 18# Use Redis adapter to run Action Cable in production 19# gem 'redis', '~> 4.0' 20# Use Active Model has_secure_password 21# gem 'bcrypt', '~> 3.1.7' 22 23# Use Active Storage variant 24# gem 'image_processing', '~> 1.2' 25 26# Reduces boot times through caching; required in config/boot.rb 27gem 'bootsnap', '>= 1.4.2', require: false 28 29group :development, :test do 30 # Call 'byebug' anywhere in the code to stop execution and get a debugger console 31 gem 'byebug', platforms: [:mri, :mingw, :x64_mingw] 32 gem 'sqlite3' 33end 34 35group :development do 36 # Access an interactive console on exception pages or by calling 'console' anywhere in the code. 37 gem 'web-console', '>= 3.3.0' 38 gem 'listen', '~> 3.2' 39 # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring 40 gem 'spring' 41 gem 'spring-watcher-listen', '~> 2.0.0' 42end 43 44group :test do 45 # Adds support for Capybara system testing and selenium driver 46 gem 'capybara', '>= 2.15' 47 gem 'selenium-webdriver' 48 # Easy installation and use of web drivers to run system tests with browsers 49 gem 'webdrivers' 50end 51 52# Windows does not include zoneinfo files, so bundle the tzinfo-data gem 53gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby] 54gem 'pry-rails' 55gem 'haml-rails', '>=1.0', '<=2.0.1' 56gem 'font-awesome-sass' 57gem 'carrierwave' 58gem 'mini_magick' 59gem 'ancestry' 60gem 'jquery-rails' 61gem 'devise' 62 63group :production do 64 gem 'pg' 65end

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

no1knows

2020/08/04 00:15

ローカルで開発していたときは、gem 'sqlite 3'を利用していて、Herokuにデプロイするためにgem 'pg'に切り替えてエラーが出たということで良いでしょうか?
_tonton_

2020/08/04 00:23

ご回答ありがとうございます。 ご指摘いただいてGemfile確認したところ、development test doにsquite 3 デプロイのためにproduction doにpgを記述してあります。 今回のエラーと関連があるかは分かりかねます。
no1knows

2020/08/04 01:58

$bundle install --without production ではいかがでしょうか? もしうまく行かない場合、Gemfileを質問文に追記いただけますか?
_tonton_

2020/08/04 02:05

試してみましたが、全く同じエラーが出ました。 Gemfile追記しましたので、 ご確認よろしくお願いいたします。
no1knows

2020/08/04 03:32

> 開発を進めたいのですが、ローカルサーバーが利用できません。 念の為ですが、このエラーはローカルで出ているという認識で良いのでしょうか?
_tonton_

2020/08/04 03:45 編集

デプロイ後、localhostを開いてrails sを実行しましたがエラーが出ます。 ちなみにherokuへpushしても変更内容が本番環境に反映されないので、 このエラーに原因があるのでは、と思っています。
guest

回答2

0

ベストアンサー

問題はおそらく database.yml もしくは環境変数にあります

1
rails s コマンドのログを確認し、Rails が development として実行されていることを確認します

development でない場合は
RAILS_ENV 等の環境変数で development 以外を設定していないかなどを確認します

2
database.yml を確認し、development の場合に
adapter:postgresql ではなく sqlite3 になる設定になっていることを確認します

原因

提示していただいた Gemfile ファイルでは、
pg のRubyGem は production の場合のみインストールされるため、
質問欄のエラーメッセージが表示されています:

ruby

1group :production do 2 gem 'pg' 3end

投稿2020/08/04 07:08

y_shinoda

総合スコア3272

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

_tonton_

2020/08/04 07:30

ご回答ありがとうございます。 確認したところ、developmentの場合adapter:がpostgresql設定になっていました。 group :production, :development do gem 'pg' end で記述してローカルサーバに繋いでみようと思います。
y_shinoda

2020/08/04 08:17

development はローカルでの利用を想定した設定です ローカルでは元々 sqlite 3 を利用していたと思われますが、 ローカルでも PostgreSQL に変更するのですか? もしローカルでも PostgreSQL を利用する場合は ローカルで利用するための PostgreSQL を別途用意することになります PostgreSQL の用意の方法は「ローカル」がどこかによります (Cloud9 や VirtualBox. Docker, Mac など) ここでは解説しきれないので、 もし新たに質問が必要な場合はローカルの環境について記載した質問を別途投稿お願いします
guest

0

Gemfile.lockに問題がありそうなので、下記のようにGemfile.lockを削除する手順を試してみてはいかがでしょうか?
https://sakura-bird1.hatenablog.com/entry/2017/03/28/151441

bundle updateでも良さそうですが・・・


bundle install
bundle installを実行すると、railsは、gemfile.lockを元にgemのインストールを行います。この時、gemfile.lockに記述されていない、且つgemfileに記述されているgemがある場合、そのgemとそのgemに関連するgemをインストール後、gemfile.lockを更新します。


bundle update
bundle updateを実行すると、Bundlerは、gemfileを元にgemのインストールを行います。その後、gemfile.lockを更新します。


bundle install と bundle updateの違いについて

投稿2020/08/04 06:04

no1knows

総合スコア3365

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

_tonton_

2020/08/04 07:34

回答ありがとうございます。 gem "pg"をdevelopment環境においていなかったのが原因でした。 問題解決にご協力いただき、ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問