Ruby on RailsのファイルをHerokuのデプロイする方法



AWSやローカル環境で作ったRuby on RailsのアプリをHerokuにデプロイする方法を紹介します。

Herokuにデプロイするのは初心者の人には難しく感じる人も多いと思います。

デプロイしようとしても、エラーが出て挫折することも多いでしょう。

この記事ではそんな初心者の人でもHerokuにデプロイできるように手順を解説していきます。

Herokuにデプロイするために必要な事前準備

Herokuにデプロイする時に気をつけたいのが「SQL」の違いです。

Ruby on Railsの標準のSQLはsqlite3。
それに対してHerokuのSQLはPostgreSQLとなっています。

この違いを考えずにデプロイしようとするとエラーが起こります。

このSQLの違いを考慮して、問題なくHerokuにデプロイするためには、Gemfileとdatabase.ymlの2つを修正します。

Herokuにデプロイするために Gemfileを修正する

Ruby on Railsの初期設定では、全ての使用するSQLはSqlite3となっています。

Gemfileにもgem 'sqlite3’と書かれているのでこれを修正します。

Sqlite3は開発環境、テスト環境だけで使用するようにして、PostgreSQLはプロダクション環境でのみ使用するようにGemfileに書き込みます。

gem 'sqlite3’の場所を下のように書き換えてください。

書き換えた後はbundle installします。

ただし、PostgreSQLはプロダクション環境でしか使用しないのでbundle installするときに、–without productionも付けるようにします。

無事インストールされれば、Gemfileの変更は完了です。

database.ymlを変更する

Gemfileの変更したら、次にConfig/database.ymlを修正します。

database.ymlを開くいて、下の方にあるproduction:という箇所を見てください。

デフォルトでは、上記のようにプロダクション環境でもsqlite3を使用するように書かれています。

そこで、プロダクション環境ではPostgreSQLを使用するように以下のように書き換えましょう。

これでプロダクション環境ではsqlite3を使用せずに、PostgreSQLを使用するようになります。

変更を保存してHerokuのデプロイへ

上記で変更をした後は、変更を保存し、コミットします。
masterブランチ以外にいる場合は、masterブランチに移動して、変更したブランチをマージします。

まず変更を全て追加します。

その後にコミットします。

そして、masaterブランチに移動します。

変更したブランチをマージします。

MasterブランチからHerokuにデプロイする

では、ここからHerokuにデプロイしていきます。

Herokuのアカウントを作成していることを前提としているので、まだの人はアカウントの作成をしてから、次の通りに作業を進めてください。

Herokuにログイン

ターミナルからHerokuにログインします。

上のコードをターミナルに入力すると「Press any key to open up the browser to login or q to exit:」と表示されるので、「q」以外の文字をキーボードで押しましょう。

すると、自動的にブラウザが立ち上がり、ログイン画面が表示されます。

「Log in」を押して、必要項目を入力すると、ログインすることができます。

「logged in」と表示されたら、ログイン完了です。

ファイルを作成する

次にファイルを作成します。

下のコマンドをターミナル上に打ち込んでください。

このファイル名が直接urlになります。

同じ名前がある場合

すでに誰かが同じ名前を付けているものがある場合Name keijiban is already takenと表示されます。

名前はハイフンと数字を含めるようにした方がいいです。

無料でデプロイできる数を超えている場合

Herokuで無料でデプロイできる数は5個までです。
すでに5個デプロイしている場合はYou've reached the limit of 5 apps for unverified accounts. Delete some apps or add a credit card to verify your account.と表示されます。

使っていないものを削除するか、クレジットカードを登録しましょう。

自分が作成したファイルをHeroku上にpushする

上のコマンドを打ち込むと、自分のローカル環境のMasterブランチからHerokuのMasterブランチへPushできます。

データの量にもよりますが、1分ほど時間がかかります。

Heroku上のデータベースを動かす

デプロイしただけでは、データベースは動いていません。

そのため、デプロイ先のデータベースを動かすために下のコマンドを打ち込みます。

データベースが無事動けば、これでHerokuへのデプロイは完了です。

デプロイされたものを見る

上のコマンドをターミナルに打ち込むことで、ブラウザが立ち上がり、デプロイしたページが開きます。

heroku openで開いたページは、Root_pathの画面が表示されます。

表示されるurl
http://(自分が付けたHerokuアプリケーション名).herokuapp.com
そのため、root_pathを設定していない場合はurlを変更して、自分のページがちゃんと表示されているか確認しましょう。

masterブランチ以外からpush

masterブランチ以外のブランチからHerokuにpushする場合は下のコマンドを打ち込んでください。

まとめ

HerokuにデプロイするにはGemの変更とconfigのdatabaseの変更が必要だということでした。

手順通りにすれば、問題なくデプロイできるはずなので、落ち着いてチャレンジしてみてください。

GitHubにファイルをアップロードする方法を解説

2019年2月4日

Ruby on Railsの学習にオススメな本4選

2019年2月20日

「役に立ったよ」と思ったらシェアお願いします!

ABOUTこの記事をかいた人

1989年生まれの29歳。留学、ワーホリ、世界一周から帰ってきました。 iSara5thに参加して、現在駆け出しフリーランスとして頑張っています。 旅行が好きで、バックパッカーとしていろんなところに行きました。世界一周の情報をまとめたブログも運営中。
世界一周ライフトラベラー