開発環境
- 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
を実行)