完成したアプリをherokuへデプロイするまで
Railsアプリが完成したので、herokuへデプロイして公開したいと思います。
問題なくデプロイできるよう、こちらの参考記事をもとに細かく記録していきます!
Railsアプリの準備
config/routes.rbの設定
config/routes.rbにて、トップページを設定しておく必要があります。
Rails.application.routes.draw do
get '/top', to: 'home#top'
resources :posts
root to: 'home#top' #トップページをhomeコントローラのtopアクションに設定
end
Gemfile,config/datebase.ymlの設定
まず、herokuの本番環境(production)にPostgreSQL(pg)がインストールされているので、その環境に合わせましょう。
Gemfileのgem 'sqlite3'と、書いてある箇所をコメントアウトします。
…ところが、見当たりません!
どうやら、アプリ作成時に
$rails new アプリ名 -d postgresql
を入力していたことにより、DBがデフォルトでpostgresqlになっていたことが原因だったようです。
今回は問題がありませんでしたが、私の事例に当てはまらない方は参考記事を参照してください。
config/environments/production.rbの設定
Railsは本番環境での動的な画像の表示がデフォルトでオフになっています。
画像を表示するために以下の記述をfalseからtrueに変更します。
この記述により、assets以下のフォルダから動的にコンパイルしながらページを読み込みます。
config.assets.compile = true
bin以下のフォルダの設定
rbenvを使用していない方は、binというフォルダの中の全てのファイルの一番上の記述を確認します。ruby 以降にバージョンの数字がある場合は削除し、以下のようにします。
#!/usr/bin/env ruby
これでRails側の準備は完了です!
herokuの準備
会員登録とCLIのインストール
herokuに会員登録し、CLI(Herokuをコマンドライン上から操作するためのツール)をインストールします。
Macの場合CLIはインストーラを使わず、Homebrewを使いましょう。
$brew tap heroku/brew && brew install heroku
バージョンが確認できればCLIのインストールは完了です。
$heroku --version
heroku/7.51.0 darwin-x64 node-v12.21.0
Railsアプリとherokuの紐づけ
ターミナルからherokuにログインします。
$heroku login -i
コマンドライン上でログインを求められますので、アカウント作成時のメールアドレスとパスワードを入力してください。
iオプションを付けない場合、ブラウザ上ですすめることになります。
Enter your Heroku credentials:
Email: ~~~~~@example.com
Password: **********
Logged in as ~~~~~@example.com
ログインしたら、cdコマンドでアプリのフォルダに移動します。そして、次のコマンドを入力します。
$heroku create 任意のアプリ名 (文字列はurlになる,何も入れないとランダムな名前になる)
なお、このコマンドはherokuとアプリを紐づけるコマンドなので、アプリごとに最初の一回だけ入力すればOKです。
herokuへのデプロイ
以下のコマンドでherokuへデプロイします。
$git push heroku master
私の場合、2~3分待たされました(不安になるからヤメテ)。
うまくいくと最終部に以下のような記述が。
remote: https://***.herokuapp.com/ deployed to Heroku
remote:
remote: Verifying deploy... done.
To https://git.heroku.com/***.git
* [new branch] master -> master
このURLが、自分のアプリのURLになります。
本番環境(heroku)でのマイグレーション
URLを入力する前に、最後の作業として本番環境でのDBのマイグレーションを行うためのコマンドを打ち込みます。
heroku run rails db:migrate
ローカル環境で記録されたデータは本番環境とは異なるため、「データが消えた!」とビックリしないように!
これで全て完了しました!お疲れ様でございました!
参考
【初心者向け】railsアプリをherokuを使って確実にデプロイする方法【決定版】
【超入門】基礎から始めるHerokuの使い方(初心者向け)