Heroku に Rails アプリを公開する方法の備忘録です。

今回公開するのは、Rails 5 で作成したアプリアプリです。
公式ドキュメントのGetting Started with Rails 5.x on Herokuを参考に操作していきます。

# Railsバージョン確認
$ rails -v
Rails 5.1.2

Heroku を使う準備

Herokuサイトで、アカウント登録、heroku-cli のインストールを済ませておきます。
今回インストールしたバージョンは以下です。

# heroku-cliバージョン確認
$ heroku --version
heroku-cli/6.14.20 (darwin-x64) node-v8.4.0

Heroku アプリの作成

コマンドラインからも操作できるけど、今回は Web 画面から操作しました。

まずは右上の New > Create new app をクリック。

Referenced from Heroku.
Referenced from Heroku.

App name を入力して、Create app をクリック。
ここで入力した文字列が、公開する Heroku アプリの URL の一部になります。

Referenced from Heroku.
Referenced from Heroku.

Heroku アプリができました。

Referenced from Heroku.
Referenced from Heroku.

Heroku Postgres の準備

Heroku の標準 DB である、Heroku Postgres を準備します。 Heroku では、RDB は Heroku Postgres、KVS は Heroku Redis を使うのが一般的です。

まずは Resouces タブの Add-ons で Heroku Postgres を追加。

Referenced from Heroku.
Referenced from Heroku.

追加時にプランを選ぶモーダルダイアログが出るので、無料で行きたいなら Free プランを選びます。

Referenced from Heroku.
Referenced from Heroku.

database.yml の設定

準備した Heroku Postgres のホスト名、データベース名、パスワードなどを Rails アプリの database.yml に反映させます。

作成した Heroku Postgres をクリック。

Referenced from Heroku.
Referenced from Heroku.

Settings タブをクリック後、Database Credentials の View Credentials…をクリック。

Referenced from Heroku.
Referenced from Heroku.

ホスト名、データベース名、パスワードなどが表示されるので、database.yml の production に反映させます。

Referenced from Heroku.
Referenced from Heroku.
production:
  <<: *default
  encoding: utf8
  adapter: postgresql
  port: xxxx
  username: xxxx
  host: xxxx.xxxx.xxxx.com
  database: xxxx
  password: xxxx

Gemfile の設定

Gemfile は、Rails のデフォルト設定でgem 'sqlite3'となっている部分をgem 'pg'に書き換えておきます。

# gem 'sqlite3'
gem 'pg'

デプロイ

Deploy タブにデプロイ方法が書いてあるので、好きな方法でアップします。
今回は、Heroku Git で行いました。

Referenced from wikipedia.
Referenced from wikipedia.
# 既にGitリポジトリがある場合
# リモートリポジトリとしてherokuを登録
$ heroku git:remote -a zzzmisa-rails
# リモートリポジトリherokuにpush
$ git push heroku master

デプロイが成功したら、Web 画面左上の Open app をクリックすると、公開したアプリにアクセスできます。

Referenced from wikipedia.
Referenced from wikipedia.

(おまけ)開発環境への PostgreSQL インストール

ドキュメントによると…

We highly recommend using PostgreSQL during development.

開発環境でも PostgreSQL を使うことを強くおすすめします、とのことなので、ローカルにも Postgres をインストールしておくと良さそうです。

Postres のローカルへのインストール方法はLocal setupに書いてあります。

インストールができたら、database.yml の development の adapter を postgresql に変えて、DB をマイグレートし直せは OK です。
Herokuサイトで、アカウント登録、heroku-cli のインストールを済ませておきます。