RailsアプリをHerokuへデプロイ
どうもこんばんは
ポートフォリオ作成の一環で、自作アプリをHerokuにデプロイしました。
その時の手順の覚書です。
環境
・macOS Mojave
・Ruby 2.5.3
・Rails 6.0.0
・Heroku 7.33.3 darwin-x64 node-v11.14.0
前提
macで個人開発をしていて、完成が見えてきたのでHerokuへデプロイしようと思いました。
DBがMySQLでしたので、Herokuで使用するPostgresに変更する必要がありました。
Herokuのアカウント登録
いくつかの登録方法があるようですが、私はWebから登録しました。
https://signup.heroku.com/login
特に難しいこともなかったので詳しい説明はしません。
macでコマンドが使えるようにします。
まずは公式のものを参考にしてください。
https://devcenter.heroku.com/articles/heroku-cli#download-and-install
ダウンロードとインストール
$ brew tap heroku/brew && brew install heroku
確認
$ heroku --version
heroku/7.33.3 darwin-x64 node-v11.14.0
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/auth/browser/xxxxxxxxxxx
Logging in... done
Logged in as xxxxxxxxx@gmail.com
空のgitリポジトリと空のアプリケーションを作成
$ heroku create
Creating app... done, ⬢ <アプリ名>
https://<アプリ名>.herokuapp.com/ | https://git.heroku.com/<アプリ名>.git
アプリ名は自動で設定してくれます。
オリジナルの名前にするなら以下のコマンドで変更。
大文字や既に使用されている名前は使用不可でエラーとなります。
$ heroku rename <アプリ名>
Gemfile,database.ymlの編集
Herokuで使用するDBがPostgresのため、設定ファイルの編集をします。
[Gemfile]対象部分のみ
#gem 'mysql2', '>= 0.4.4'
gem 'pg', '~> 0.18.4', group: :production
mysql2をコメントアウトして、pgを本番環境のみ追加します。
mysql2は開発環境に設定してもいいと思います。(最終的にそうした)
[database.yml]対象部分のみ
production:
<<: *default
adapter: postgresql
encoding: unicode
pool: 5
database: XxxxxApp_production
url: <%= ENV['DATABASE_URL'] %>
私はこのような書き方をしました。
デプロイしましょ
$ cd <アプリのあるディレクトリ>
$ git add .
$ git commit -m “<コメント>”
ブランチを切っていたので以下のコマンドにしました。適切な方法を教えて欲しい。
$ git push heroku <ブランチ名>:master —force
一度見てみる→railsのエラー画面
$ heroku open
マイグレーションする
$ heroku run rails db:migrate
再度"heroku open"するかURLを指定してアプリの動作確認。
エラー対処
マイグレーションでエラーが出ていたので対処しました。
最終的にはブランチを切っていたためにgit pushに不具合があったことがわかりました。
gitコマンドを使いこなすことと、切り分けをスムーズにできるようにしたいものです。
Postgresのアドオンを追加
$ heroku addons:create heroku-postgresql:hobby-dev
環境変数を確認
$ heroku config
"heroku run cat Gemfile"でリモートリポジトリのGemfileに不具合があることがわかりました。
heroku run 〜〜でコマンド操作できます。便利。
この記事が気に入ったらサポートをしてみませんか?