Heroku
PostgreSQL
RubyOnRails

RailsチュートリアルのアプリをHerokuにデプロイしたけどDBの設定ができてなかったので見直しした話

開発環境

  • CentOS 7
  • RubyOnRails 5.1
  • PostgreSQL(production環境用)

問題

Railsチュートリアル(rails5.1版)をHerokuにデプロイしたが、Signupでエラーページが表示された。
見直してみると結構しょぼいが、メモや今後のために記録しておく。

原因その1

よくよく考えたら、production用DBの設定をdatabase.ymlにしていなかったので設定。

production:
  adapter: postgres
  url: <%= ENV['DATABASE_URL'] %>

原因その2

これでデプロイしたが、まだエラーページに行くので

$ heroku logs

で確認してみた。

ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR:  relation "users" does not exist

と出力されていたので、DBにテーブルを作ってやる必要がある。
てことで

$ heroku run rails db:migrate

これでめでたくテーブルが出来て、Signupページも表示できた。

ついでに、作成したDBに接続してみる

$ heroku pg:psql *********** --app $$$$$$$$$$$$

を実行。
このコマンドは、Herokuの管理画面のHeroku Postgresアドオンから確認できる)
*や$は、マスクしてある部分なので、アプリによって読み替える。

(Postgresがローカルに入ってない場合は sudo yum install postgresql を実行)