#WHY
デプロイすることも多くなり、手順を覚えるためのアウトプットの一環として書いていきます。
herokuでデプロイするにはまずアカウント作成とクレカ登録が必要ですがそこは省きます。
##CLIのインストール
ターミナルでCLIをインストールしていく。
インストール後に「heroku --version」と打ち込み、バージョンが表示されれば成功。
brew tap heroku/brew && brew install heroku
heroku --version
##ログイン
以下のコードを入力することでログインできる。
指示に従い、アカウント情報を入力する。
heroku login --interactive
=> Enter your Heroku credentials.
=> Email:
=> Password:
##heroku create
デプロイしたディレクトリまで移動し、
Heroku上に公開するためのアプリケーションを作成する。続けてアプリ名を記入し、Heroku上でのアプリケーション名を決めることができる。
また、create後はgit config --list | grep herokuでfatal: not in a git directory以外が表示されれば成功。
cd ~/アプリケーションのディレクトリへ
pwd
heroku create アプリケーション名
git config --list | grep heroku
##ClearDBアドオン
MySQLを使うためのツール。ClearDBというデータベースサービスが提供しているアドオンで、これを追加することで、HerokuでMySQLを使用できるようになる。
heroku addons:add cleardb
##その他設定の変更
Ruby on Railsを使う場合は、MySQLに対応するGemについて考慮する必要があり、
・ClearDBデータベースのURLを変数heroku_cleardbに格納
・データベースのURLを再設定
をしなければならない
heroku_cleardb=`heroku config:get CLEARDB_DATABASE_URL`
heroku config:set DATABASE_URL=mysql2${heroku_cleardb:5}
##heroku config
Heroku上に、環境変数としてmaster.keyの値を設置しなければならない。
これは外部に漏らしたくない情報を扱うcredentials.yml.encファイルの暗号文を複合することができるmaster.keyファイルがデフォルトではGitに管理されないため。
Heroku上で環境変数の参照・追加・削除等をするheroku configコマンドを使用する。
また、heroku configで環境変数を確認することができる。
heroku config:set RAILS_MASTER_KEY=`cat config/master.key`
heroku config
##Stack
デプロイされたアプリケーションを読み取り正常に稼働させるための動作環境。
デフォルトのStackは「Heroku-20」
Rubyのバージョン2.6.5が動作するStackは「Heroku-18」
heroku stack:set heroku-18 -a アプリケーション名
##プッシュ
Herokuへコミットをプッシュすることで、Herokuにアプリケーションの情報を追加できる。
git push heroku master
##heroku run
マイグレートをしないとherokuのデータベースにはマイグレーションの情報が反映されていない。
rails db:migrateであればheroku run rails db:migrateと記述。
heroku run rails db:migrate
##heroku apps:info
公開されたアプリケーションの詳細を見ることができ、webURLなどを確認することができる。
heroku apps:info
##再度プッシュする場合
コードに変更が生じて再度プッシュを行う場合は次の3つのコードを順番に行う。
git add .
git commit -m "後から見てわかりやすいコミット名"
git push heroku master
###ファイルの変更が特にない場合
環境変数だけ本番環境に反映させたい場合などは以下の通りにする。
git commit --allow-empty -m "空のcommit"
git push heroku master
herokuにはherokuのDBがあるということや、Gitとは違うherokuのプッシュがあるということを忘れずにこれからもデプロイしていこうと思います!