Herokuのアカウントを作る
まずは以下のページからHerokuのアカウントを作りましょう。
https://signup.heroku.com/login
すると、登録したメールアドレス宛にHerokuから認証用のメールが送信されるので、リンクをクリックしてリンク先でパスワードの設定を行います。
これで登録は完了です。
アプリの設定を変更する
アプリ側の設定をHerokuに合わせて変更します。
・Gemの追加
HerokuではPostgreSQLというデータベースを使うため、pgというgemをインストールする必要があります。
本番環境だけにインストールできればいいので、group :production do ~ endの間に記載します。
group :production do
gem 'pg'
end
.database.ymlの修正
上述のようにHerokuではPostgreSQLを使用しているので、database.ymlも本番環境(production)の記述を変更します。
production:
<<: *default
adapter: postgresql
encoding: unicode
pool: 5
GitHubに反映
設定ファイルの修正が完了したため、GitHubのマスターブランチに反映しましょう。
Herokuを自分のPCにインストール
以下のURLからHerokuをインストールしましょう。
私はMacを使っているのでHomebrewを使ってインストールします。
https://devcenter.heroku.com/articles/heroku-cli
・インストールコマンド実行
% brew tap heroku/brew && brew install heroku
・インストール完了後、herokuのバージョンを確認することで、herokuがインストールされているか確認。
ここでherokuコマンドが見つからないというエラーメッセージが出るので、パスを通してあげます。
% heroku -v
zsh: command not found: heroku
パスを通す
~/.zshrcにherokuコマンドのパスを追記します。
vim ~/.zshrc
~/.zshrcに以下を追記
export PATH=$PATH:/usr/local/Cellar/heroku/7.39.5/libexec/bin
sourceコマンドでzshrcの内容を反映する。
% source ~/.zshrc
これでherokuコマンドが実行できるようになります。
% heroku -v
heroku/7.41.1 darwin-x64 node-v12.16.2
・あまりお勧めしないやり方
以下のようにechoコマンドで.zshrcにパスを追記することもできますが、>>ではなく>で.zshrcの内容を全て上書きしてしまう可能性があるため、個人的にはvimで編集することをお勧めします。
echo 'export PATH=$PATH:/usr/local/Cellar/heroku/7.39.5/libexec/bin' >> ~/.zshrc
PCからherokuにログインする
loginコマンドを実行するとブラウザが起動しHerokuのログイン画面に飛びます。
ログインを実行後、ターミナルに戻って作業を再開します。
% heroku login
heroku: Press any key to open up the browser to login or q to exit:
ターミナルからの操作でHerokuのアプリを作ります。
ここで作ったアプリにGithubからコードを反映することでデプロイできるようになります。(アプリ名がURLになるので、名前は一意となるものにしてください)
% heroku create アプリ名
デプロイ
以下のコマンドでデプロイしましょう。
% cd アプリを格納しているディレクトリ
% git push heroku master
おそらくこんな感じのエラーが出ます。
% git push heroku master
fatal: 'heroku' does not appear to be a git repository
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
.git/configを修正することでエラーを回避できます。
% vim .git/config
以下を追記することで"heroku"がどこのURLを指すのか指定します。
アプリ名は上述の「heroku create アプリ名」で作成したアプリを記述してください。
[remote "heroku"]
url = https://git.heroku.com/アプリ名.git
fetch = +refs/heads/*:refs/remotes/heroku/*
それでは再度デプロイ。
% git push heroku master
デプロイ完了後はマイグレーションを行います。
% heroku run rails db:migrate
ここまで正常終了すればHerokuにアプリが上がっているはず!
ターミナルで「heroku open」を入力するか、https://アプリ名.herokuapp.com/にアクセスして確認しましょう!