Rails
Heroku

Heroku PostgresをRailsアプリで利用する手順

More than 1 year has passed since last update.

もくじ

Heroku Postgres
- URL取得
- 補足:アドオン追加
Rails
- database.yml
- Gemfile
デプロイ
マイグレーション

Heroku Postgres

URL取得

heroku configコマンドでDATABASE_URLを確認する

$ heroku config
=== xxxxx-xxxxx-xxxxx Config Vars
DATABASE_URL:             postgres://<username>:<password>@<host>:<port>/<database>

補足:アドオン追加

DATABASE_URLが表示されない場合、アドオンの追加を行う。

参考:Heroku Postgres | Heroku Dev Center

$ heroku config
=== xxxxx-xxxxx-xxxxx Config Vars

# => DATABASE_URLが表示されない場合は、以下のコマンドを実行してアドオンを追加

$ heroku addons:create heroku-postgresql:hobby-dev

Creating heroku-postgresql:hobby-dev on ⬢ xxxxx-xxxxx-xxxxx... free
Database has been created and is available
 ! This database is empty. If upgrading, you can transfer
 ! data from another database with pg:copy
Created postgresql-xxxxx-xxxxx as DATABASE_URL
Use heroku addons:docs heroku-postgresql to view documentation

$ heroku config
=== xxxxx-xxxxx-xxxxx Config Vars
DATABASE_URL:             postgres://<username>:<password>@<host>:<port>/<database>

# => アドオンが追加され、DATABASE_URLが表示されるようになる

Rails

database.yml

database.ymlで環境変数DATABASE_URLを参照するように設定する

参考:Rails アプリケーションを設定する | Rails ガイド

config/database.yml
production:
  url: <%= ENV['DATABASE_URL'] %>

Gemfile

GemfileでProduction環境でpgを利用するように設定する

Gemfile
# Use sqlite3 as the database for Active Record
gem 'sqlite3', group: [:development, :test]
gem 'pg', group: :production

デプロイ

Herokuにアプリをデプロイする。

参考:HerokuにRailsアプリをデプロイする手順 - Qiita

マイグレーション

デプロイしたアプリでマイグレーションを実施する。

# DBのマイグレーション
$ heroku run rake db:migrate

# dynoの再起動
$ heroku ps:restart

# アプリを開く
$ heroku open