##前提
- Mac OS
- Ruby on Rails
- Herokuアカウント作成済
登録がまだの方はHeroku公式サイトから登録してください。
Herokuとは、PaaS(Platform as a Service)
と呼ばれるサービスで、
アプリケーションを実行するためのプラットフォーム。
無料でさくっと公開した方はオススメ。
- 未認証アカウントの場合:無料 dyno 時間は 550 時間/月まで
(クレジットカード登録をした場合:+ 450 時間/月が付与 合計で1,000時間/月 利用可能) - 必要な RAM は 1 dyno あたり 512 MB
- 30分アクセスがないとスリープしてしまう(スリープ中はdynoを消費しない)
- HerokuPostgreSQLは、10000行までの制限あり
詳しくは下記公式のページ参照してください。
https://jp.heroku.com/what
##1. Heroku CLI インストール
$ brew tap heroku/brew && brew install heroku
コマンドで実行するか、下記のリンクからOSを指定してダウンロードもできる。
https://devcenter.heroku.com/articles/heroku-cli
個人的にはターミナルがおすすめ。
##2. Herokuにログイン
$ heroku login
heroku: Press any key to open up the browser to login or q to exit:
Opening browser to https://cli-auth.heroku.com/************************
Logging in... done
Logged in as (登録したメールアドレス)
$ heroku login
コマンド入力後、リターンキーを押す。
(任意のキーと書いてるのでおそらくどれでも良いかと...)
するとherokuのログイン画面がブラウザーで表示されるため、ログインする。
画像のように表示されればOK。
この時点でターミナル側でもLogged in as (登録したメールアドレス)
と表示されているはず。
##3. PostgreSQLのインストールと設定
3-1. PostgreSQLのインストール
$ brew install postgresql
HerokuではPostgreSQLデータベースを使う為、
インストールされてない方はここでインストール。
3-2. PostgreSQLの設定
gem 'sqlite3', '~>1.3.6' # この行を削除しdevelopment内に移動
# 省略
group :development, :test do
gem 'sqlite3', '~>1.3.6' # 開発環境のみ
end
# 省略
group :production do
gem 'pg' # 本番環境のみ
end
# 省略
HerokuではSQLiteがサポートされていないため、
sqlite3 gem
を開発環境(development)内に移動させ
本番環境(production)内にpg gem
をインストールし
RailsがPostgreSQLと通信できるようにする。
$ bundle install --without production
Gemfileを更新したので最後にbundle installを忘れずに。
今回は--without production
を追記してますが、
こうすることでpg gem
はローカル環境には反映されないようになります。
##4. Herokuにデプロイ
4-1. heroku上にアプリケーションを作成
$ heroku create 任意のアプリ名
アプリ名を入力しない場合は自動で割り当てられます。(後で変更可能)
4-2. Gitを使ってHerokuにリポジトリをプッシュ
$ git add .
$ git commit -m "initial commit"
$ git push heroku master
・
・
・
・ # 省略
remote: Verifying deploy... done. # このように表示されればOK!
To https://git.heroku.com/.git
* [new branch] master -> master
4-3. migrationの実行
$ heroku run rails db:migrate
ローカル環境で行なっていたrails db:migrate
を本番環境でも同じことをしてあげる。
##5. サイトにアクセス
$ heroku open
上記コマンドを実行すると、ブラウザーでWebページを表示してくれます。
以上!!!!!!!!!!パチパチ