LoginSignup
4
5

More than 5 years have passed since last update.

Herokuにプロジェクト載せてサービス公開

Last updated at Posted at 2018-06-30

ローカル環境で作成したRailsプロジェクトをHerokuに載っけて公開するときの作業メモ。

Heroku について
Heroku操作 CLI
Herokuエラーメッセージへの対処


簡易的な流れ

  • Heroku用にPostgreSQLをインストール
  • config/database.ymlを少し変更
  • Herokuにサーバーを作成

プロジェクトによって都度設定確認が必要そうなファイル

  • config/environments/production.rb
  • config/database.yml

WebサイトをHerokuで公開してドメイン取得とSSL化までの全手順
HerokuにRailsアプリをデプロイする手順
Heroku PostgresをRailsアプリで利用する手順
Rails初学者がつまずきやすい「アセットパイプライン」
Rails Production環境でプリコンパイルする時の留意点
画像が表示されないからfogとかS3とか使う。
RAILS画像投稿アプリをHEROKUで動かすときの写真保存方法
gem install pg が失敗するときの対処法
RailsアプリをHerokuへデプロイするときの手順まとめ | 2015

以下作業だよ

postgresqlが無ければ

先にインストールしておく(homebrewから)

brew install postgresql

herokuにログイン

heroku login
#Emailを入力
#パスワードを入力

プロジェクトディレクトリ内に移動

cd プロジェクトディレクトリ名

まだgit管理していない場合

git initコマンドでローカルリポジトリを作成してからコミットしておく
Rails5系は最初からgit管理状態なので「git init」は不要

これでもう怖くない!?Rails 4.1からRails 5.0にアップグレードする手順を動画付きで解説します

# 初期化
git init
# ディレクトリ配下ファイルをコミット対象に
git add .
# コミット
git commit -m "Git on"

Gemfile修正

:exclamation:元からPostgresを使っている場合は作業不要

データベースにsqliteを使用している場合、gem 'sqlite3'の行を修正+追記

Gemfile
# gem 'sqlite3'
gem 'sqlite3', group: [:development, :test]
gem 'pg', group: :production

ファイル修正したらbundle実行しとく

bundle

Postgresql(DB) の利用設定

#コマンドでDATABASE_URLを確認
heroku config

DATABASE_URLが表示されればOK

database.ymlで環境変数DATABASE_URLを参照するように設定する

config/database.yml
production:
#  <<: *default
#  database: db/production.sqlite3
  adapter: postgresql
  url: <%= ENV['DATABASE_URL'] %>
  pool: 5
  timeout: 5000

コミット作業

本番環境実行に必要なファイルを編集したら
コミットしておく。

# コミット
git commit -m "Release to heroku"

# --- #

# ついでにGithubにあげるなら
git push origin master

Herokuアプリ作成
Herokuにリモートのアプリケーションを作成

heroku create <アプリ名>

 #https://xxxxx-xxxxx-xxxxx.herokuapp.com/ | https://git.heroku.com/xxxxx-xxxxx-xxxxx.git

# HerokuアプリのURL、Gitリポジトリが表示される

#確認
git remote
 #heroku

デプロイ

ローカルのmasterブランチをリモートリポジトリ(heroku)へpushする

git push heroku master

確認

#ウェブアプリをブラウザで開く
heroku open

スクリーンショット 2018-06-21 20.54.55.png
ようこそ:joy:

DBを作成していないのでheroku側でマイグレーションを実行する

マイグレーション

# DBのマイグレーション
heroku run rake db:migrate

# dynoの再起動
heroku ps:restart

# アプリを開く
heroku open

DBが作成されて見れるようになったはず

タイムゾーン設定

# タイムソーンを日本時間に変更
heroku config:add TZ=Asia/Tokyo

環境変数の設定

# 環境変数一覧 表示
heroku config

# 環境変数名を指定して参照
heroku config:get ENV_NAME

# 環境変数 追加
heroku config:set ENV_NAME="value"

# 環境変数 削除
heroku config:unset ENV_VAR_NAME

herokuにデプロイ後の操作

【herokuコマンド】createからdestroyまで


アプリを更新する

git add .
#コメントは適宜変更
git commit -m "Fix config/environments/production.rb"

git push heroku master

アプリを削除する

#アプリ名の確認
heroku apps:info

#削除
heroku apps:destroy --app アプリ名
#アプリ名を入力すると削除完了

#確認なしで1発で削除
heroku apps:destroy --app アプリ名 --confirm アプリ名

うまくいかないパターンまとめ

誤ってローカルリポジトリ作成前にheroku createしてしまった場合

リモートリポジトリherokuが存在しない場合は、heroku create <アプリ名>コマンド実行時に払い出されたgitリポジトリをリモートリポジトリherokuとして登録する

GitリポジトリのURLを登録する

# リモートリポジトリを追加

git remote add heroku https://git.heroku.com/xxxxx-xxxxx-xxxxx.git

Heroku Postgres(DB) の アドオン追加

heroku configコマンドで
DATABASE_URLが表示されない場合、アドオンの追加を行う。
<PLAN_NAME>にはherokuでの契約プラン名が入る

Heroku Postgres | Heroku Dev Center

#heroku addons:create heroku-postgresql:<PLAN_NAME>
heroku addons:create heroku-postgresql:free-dev


#作業完了まで待ってから 確認
heroku config

さらに理解を深めるために...

[Ruby] RailsをHerokuへデプロイする時の7つの注意事項 [Heroku]

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5