#環境
・Rails 6.0.3.2
・mysql Ver 14.14 Distrib 5.6.47
・osx10.15
・herokuへデプロイ
#はじめに
Rails
でアプリを作成しheroku
へアップロードするときにうまくいかなかった時の対応です。
開発環境ではMySQL
でheroku
ではDBがPostgreSQL
のためその対応が必要。
その途中段階でエラーが生じた。
順番に書いていきます。
#PostgreSQLへの対応
まずはGemfile
へ以下を記述。本番環境でPostgreSQL
を使うというものです。自分は一番下に書きました。
group :production do
gem 'pg'
end
Gemfileを変更したので忘れずにbundle installをします。
まずここで一つ目のエラーでました。そのままbundle install
すると自分の開発環境にはPostgreSQL
がないのでエラー発生。
対応はgroup :produciton end
のところを飛ばすコマンドをターミナルで実行します。
$ bundle install --without production
データベースへ接続する記述をconfigフォルダの中にあるdatabase.yml
へします。
一番下へ追記しました。
production:
<<: *default
adapter: postgresql
encoding: unicode
pool: 5
自分の場合は記述は以上でした。
参考になった記事はコチラです!
【初心者向け】railsアプリをherokuを使って確実にデプロイする方法【決定版】
・https://qiita.com/kazukimatsumoto/items/a0daa7281a3948701c39
#herokuへデプロイ
今回ここは割愛します。
デプロイ完了まで進みます。
#ここでdb:migrate
heroku run rails db:migrate
をしますがエラー発生!
いろいろ見ているうちにこのエラーにやっと出会う。。。
ターミナルには中ほどに以下のような記述が。
Caused by:
PG::ConnectionBad: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
#原因
調べてみると単純なことでheroku
にはデフォルトではPostgreSQL
が入ってないので、追加してあげる必要があるということです!
なんと!!!!
まだまだ慣れてないのでこの単純なことに気づけませんでした。。。。
#対応
ターミナルでPostgreSQL
を追加するコマンド
$ heroku addons:create heroku-postgresql
その後に
$ heroku run rails db:migrate
そうするとマイグレーションが完了しました!
別のところが誤っていると思い全然違うことをして数時間を費やしてしまいましたが、単純なことでした!
無事アプリが動作し完了しました!
#参照
【初心者向け】railsアプリをherokuを使って確実にデプロイする方法【決定版】
・https://qiita.com/kazukimatsumoto/items/a0daa7281a3948701c39
【Rails】「heroku run rake db:migrate」を実行しようとすると発生するエラーについて
・https://qiita.com/suzuki-x/items/b878723080aea1a673ed