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 をクリック。
App name を入力して、Create app をクリック。
ここで入力した文字列が、公開する Heroku アプリの URL の一部になります。
Heroku アプリができました。
Heroku Postgres の準備
Heroku の標準 DB である、Heroku Postgres を準備します。 Heroku では、RDB は Heroku Postgres、KVS は Heroku Redis を使うのが一般的です。
まずは Resouces タブの Add-ons で Heroku Postgres を追加。
追加時にプランを選ぶモーダルダイアログが出るので、無料で行きたいなら Free プランを選びます。
database.yml の設定
準備した Heroku Postgres のホスト名、データベース名、パスワードなどを Rails アプリの database.yml に反映させます。
作成した Heroku Postgres をクリック。
Settings タブをクリック後、Database Credentials の View Credentials…をクリック。
ホスト名、データベース名、パスワードなどが表示されるので、database.yml の production に反映させます。
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 で行いました。
# 既にGitリポジトリがある場合
# リモートリポジトリとしてherokuを登録
$ heroku git:remote -a zzzmisa-rails
# リモートリポジトリherokuにpush
$ git push heroku master
デプロイが成功したら、Web 画面左上の Open app をクリックすると、公開したアプリにアクセスできます。
(おまけ)開発環境への PostgreSQL インストール
ドキュメントによると…
We highly recommend using PostgreSQL during development.
開発環境でも PostgreSQL を使うことを強くおすすめします、とのことなので、ローカルにも Postgres をインストールしておくと良さそうです。
Postres のローカルへのインストール方法はLocal setupに書いてあります。
インストールができたら、database.yml の development の adapter を postgresql に変えて、DB をマイグレートし直せは OK です。
Herokuサイトで、アカウント登録、heroku-cli のインストールを済ませておきます。