LoginSignup
6
0

More than 3 years have passed since last update.

[heroku] run rails db:migrateがうまくいかない

Last updated at Posted at 2020-09-13

環境

・Rails 6.0.3.2
・mysql Ver 14.14 Distrib 5.6.47
・osx10.15
・herokuへデプロイ

はじめに

Railsでアプリを作成しherokuへアップロードするときにうまくいかなかった時の対応です。
開発環境ではMySQLherokuでは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

6
0
0

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
6
0