プログラミングの勉強日記
2020年8月8日 Progate Lv.226
目標
すでにローカルで作成済みのRailsアプリケーションをHeroku上で公開する。(すでにGitHubにコードをプッシュ済み)
方法
1.Herokuに新規登録をする
Herokuの公式サイトから新規登録を行う。(無料)
2.Heroku用のデータベースをインストールする。
Gemfileを以下のように書きかえる。
# 開発環境、テスト環境
group :development, :test do 
  gem 'sqlite3' # sqlite3
end
# 本番環境
group :production do 
  gem 'pg' # PostgreSQL
end
 Gemfileを書きかえたら、反映するために`bundle install`をする。
 
 Gemfileを書きかえたら、反映するために`bundle install`をする。
$ bundle install
データベースの設定ファイル(config/database.yml)を書きかえる。
# 変更前
production:
  <<: *default
  database: db/production.sqlite3
# 変更後
production:
  <<: *default
  adapter: postgresql
  encoding: unicode
  pool: 5
 
2.5. herokuコマンドを使用する(herokuコマンドが使える人は飛ばしてOK)
 herokuコマンドを使うためには、heroku toolbaltというツールをインストールする必要がある。
 こちらからインストールすることができる。
以下のコマンドでherokuコマンドが使えるか確認できる。(私はGit Bashで行った)
$ heroku --version
3.Herokuにログインする
ターミナル(私はGit Bashを利用した)からログインする。
$ heroku login
ブラウザで以下のような画面が開く。
 
画面のLog Inを押すとログインすることができる。(ターミナルでも確認できる)
 
4.Heroku上でアプリを作成する
自分でサービス名を決めて、以下のコマンドを実行する。サービス名は、最初が文字で始まり、最後が文字または数字である必要があり、小文字、数字、ダッシュのみを含めることができる。
$ heroku create サービス名
 アプリが作られていれば、https://サービス名.herokuapp.com/にアクセスすると以下の画面が出てくる。
 
5.Herokuにコードをプッシュする
GitHubにコードが管理されていることが前提。
$ git push heroku master
成功すると、先ほどのURLをリロードすると以下の画面が出てくる。
 
$ heroku run rails db:migrate
データベースを更新すると、先ほどのURLでサイトが表示される。
メモ(ファイルを変更した場合のコマンド)
$ git add  -A
$ git commit -m "メッセージ"
$ git push heroku master
$ heroku run rails db:migrate
データベースをリセット(初期化)する場合
$ heroku pg:reset DATABASE
問題点【追記】
以上の方法で、Heroku上Railsアプリケーションを公開することができた。
しかし、carrierwaveとcloudinaryを用いて画像を投稿する機能を作成したが、この部分がうまくいかないので、もう少し試行錯誤してみようと思う。
Herokuにcloudinaruを追加するときにクレカの登録が必要みたい、、?
[Heroku]Cloudinary環境においてCarrierwaveで画像をアップロードで解決しました!
参考文献
挫折した人必見!HerokuでRailsアプリを公開する方法
herokuのデータベースをリセット/リストア/再構築する
HerokuにRailsアプリをデプロイする手順
