Edited at

もうハマらない!Ruby(Rails)アプリをHerokuへデプロイする方法

自分がハマりがちなポイントを中心にメモ。

Getting Started on Heroku with Ruby に記載されていない点を覚書き。

環境

Ruby: 2.5.1

Rails: 5.2.1

Heroku: 7.18.3 darwin-x64 node-v10.12.0


デプロイの手順


  1. 本番環境のDBをPostgreSQLに変更する (←忘れない!)

  2. heroku login

  3. heroku create

  4. git add .

  5. git commit -m "Deploy to heroku!"

  6. git push heroku master


  7. heroku run rails db:migrate (← これ忘れがち!)


ハマりがちなポイント2点


  • 本番環境のデータベースをPostgreSQLに変更していない

  • デプロイ後にDBをマイグレーションしていない


本番環境のデータベースをPostgreSQLに変更していない


  • RailsのデフォルトDBはsqlite3なのでHerokuにデプロイする前にPostgreSQLに変更する


DBをPostgreSQLに変更する手順


  1. Gemfileにてsqlite3をdevelopement, testブロックの中に移動させる

  2. pgをproductionブロックの中に追記する


Gemfile

group :development, :test do

gem 'sqlite3'
end

group :production do
gem 'pg'
end

...省略...


3 . bundle installを実行して変更完了!


デプロイ後にDBをマイグレーションしていない



  • git push heroku masterでデプロイした後、heroku run rails db:migrateでマイグレーションする!


追記(追加でハマった点)

# 「testbranch」というbranchからpushする

$ git push heroku testbranch:master


  • migrationファイルの生成順が生成されるべきテーブルの順と乖離している


    • →生成されるべきテーブルの順になるようmigrationファイルのファイル名を変更する!