ローカル環境で作成した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修正
元からPostgresを使っている場合は作業不要
データベースにsqlite
を使用している場合、gem 'sqlite3'
の行を修正+追記
# gem 'sqlite3'
gem 'sqlite3', group: [:development, :test]
gem 'pg', group: :production
ファイル修正したらbundle
実行しとく
bundle
Postgresql(DB) の利用設定
#コマンドでDATABASE_URLを確認
heroku config
DATABASE_URLが表示されればOK
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
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にデプロイ後の操作
###アプリを更新する
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