Posted at

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

More than 1 year has passed since last update.


開発環境


  • 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 を実行)