0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【Rails】Herokuにアプリをデプロイする

Last updated at Posted at 2018-11-15

最初に

Herokuを使ってデプロイするための自分用まとめです。
まずはデプロイしたいアプリをしっかりgitにpushしよう。

基本的流れ

1 Heroku側にアプリを作成する

$ heroku create 任意のアプリ名

# 例
$ heroku create sampleapp

2 ローカルにあるものをherokuにpushする

# masterブランチの内容をデプロイ
$ git push heroku master

# master以外のブランチの内容をデプロイする
$ git push heroku ブランチ名:master
# 例
$ git push heroku make_top_page:master

3 ページにアクセスして確認する

$ heroku open

エラーへの対処

本番用DBにPostgreSQLを使っていない

手順2においてローカルの内容をherokuにpushした際、
下画像のようなエラーが出た。
スクリーンショット 2018-10-18 22.07.12.png
Herokuはsqliteに対応していないのにsqliteを使用してしまっているのが原因らしい。

本番用DBをPostgreSQLにする

Gemfileを書き換えることによって実現する。
Gemfileは、アプリのディレクトリ直下にある。

sampleapp/Gemfile
gem 'sqlite3', group: :development
gem 'pg', group: :production

sqliteの記述があるあたりを上のように書き換える。

$ bundle install

変更したらpushを忘れずに。ターミナルでbundle installをする。
変更するために切ったブランチの内容をherokuにpushするか、
そのブランチをmasterにマージしてからmasterをherokuにpush。

assetのprecompileができない

スクリーンショット 2018-11-02 19.06.57.png

stylesheetにcssファイルがあるといけないらしい。
すべてのcssファイルの拡張子をcssからcss.scssに変更したらうまくいきました。

マイグレーションを実行していない

新しく作成したページを開いてみたら何かエラーが出て内容が見られない場合、
Herokuでマイグレーションを実行し忘れていることがある。
ターミナルで以下のコマンドを実行。

heroku run rake db:migrate

私はこれを実行した際、接続時にタイムアウトしてしまったので、
以下を実行してみたらうまくいった。

heroku run:detached rake db:migrate

なぜこっちだとうまくいったのかはまだ調べられていないので、もしわかる方がいらっしゃれば教えていただきたいです。

ちなみにこの実行直後はまだページを開けなかったが、
1時間ほど時間をおいてアクセスしてみたところ問題なく処理できるようになっていた。
(DBの反映に時間がかかるのでしょうか?)

少々謎な部分が残っているのでそのうち詳しく勉強したいところです。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?