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.

<a href="https://www.heroku.com/" target="_blank">Referenced from Heroku.</a>

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

Referenced from Heroku.

<a href="https://www.heroku.com/" target="_blank">Referenced from Heroku.</a>

Herokuアプリができました。

Referenced from Heroku.

<a href="https://www.heroku.com/" target="_blank">Referenced from Heroku.</a>

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.

<a href="https://www.heroku.com/" target="_blank">Referenced from Heroku.</a>

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のインストールを済ませておきます。