Tech Racho エンジニアの「?」を「!」に。
  • 開発

Sourcetreeを使ってRailsアプリをHerokuにデプロイする

こんにちは。エンジニアアルバイトのohnoです。この記事ではタイトルそのまま、「Sourcetreeを使ってRailsアプリをHerokuにデプロイする」方法を書きました。
「rails heroku デプロイ」などで検索をすると、CLIを使ったデプロイ方法は多数見つかるのですが、GUIを使った記事はあまり見当たりません。そこで本記事では、gitのGUIクライアントであるSourcetreeを使って、Herokuにデプロイする方法を紹介します。

環境

macOSが前提です(編注: Windows版のSourcetreeはUIの細かな部分が異なるそうです)。

  • Rails 5.1.4
  • Ruby 2.4.1
  • RubyMine 2017.2.4
  • Sourcetree 2.7
  • psql 9.6.5

Herokuにアプリケーションを作成する

当然ですが、まずはHerokuにアカウントを作り、ログインしましょう。ログインするとアプリケーション一覧ページが表示されるかと思います。
Herokuにアプリケーションを作成するために、このページの右上にある「NEW」ボタンをクリックし、「Create new app」を選択します。
スクリーンショット 2018-01-22 13.31.22.png

「App name」を入力し、「Create app」ボタンを押します。今回はdeploy-sampleというアプリケーション名にしました。「Choose a region」は「United States」のまま変更していません。
スクリーンショット 2018-01-22 13.32.46.png

「Open app」をクリックして確認してみましょう。
スクリーンショット 2018-01-22 13.33.25.png

以下のような画面が表示されていれば成功です。
スクリーンショット 2018-01-25 10.46.09.png

ローカルに作成したアプリケーションの設定

(注:詳細は割愛しますが、今回デプロイするアプリケーションは$ rails new deploy-sampleで作成した後に、$ rails g scaffold user name:stringを実行したものです。)
Herokuの推奨DBはPostgreSQLですが、RailsはデフォルトでSQLiteを使用しているのでいくつか設定をする必要があります。
まずはアプリケーションのGemfileを次のように編集してください。

  • 編集前
gem 'sqlite3'
  • 編集後
gem 'pg', group: :production
gem 'sqlite3', group: :development

続けて、database.ymlの内容を編集します

  • 編集前
production:
  <<: *default
  database: db/production.sqlite3
  • 編集後
production:
 <<: *default
 adapter: postgresql
 encoding: unicode
 pool: 5

これでアプリケーション側の設定は完了です。

Sourcetreeの設定

Sourcetreeを開くとこのような画面が表示されるはずです。
スクリーンショット 2018-01-22 15.16.34.png

この画面の「新規…」から「既存のローカルリポジトリを追加」を選択し、先ほど設定したローカルのアプリケーションを追加します。
スクリーンショット 2018-01-22 15.16.51.png

次に、追加されたアプリケーション名をクリックし、リモートリポジトリの設定をします。
「リモート」を右クリックし「リモートを追加…」を選択しましょう。

「URL/パス」の欄にはリモートリポジトリのURLを入力します。リモートリポジトリのURLはHerokuの「Settings」から確認することができます。今回「リモートの名前」はherokuにしました。
スクリーンショット 2018-01-22 14.43.03.png
Sourcetreeの設定は以上です。

デプロイ

ここまできたらあとはデプロイするのみです。

編集したファイルがSourcetreeの左下に表示されています。

チェックをつけるとファイルがステージングに移動し、コミットできるようになります。

「コミット」をクリックしコミットメッセージを入力後にコミットします。

ローカルでコミットした内容を「プッシュ」からHerokuにpushします。

次にHeroku側でデータベースの設定をします。Railsではマイグレーションを実行することでデータベースの設定が行えます。ただし、今回はGUIからマイグレーションを実行する方法がわからなかったので、Heroku CLIを使用します。
ここではmacOSにインストールする方法を紹介しますが、もちろん他のOSにもインストールできます。詳しくはこちらの公式ページをご覧ください。

macOSの場合はHomebrewを使ってインストールします。

$ brew install heroku/brew/heroku

インストールが完了したら、herokuコマンドを使ってログインしておきましょう。

$ heroku login

最後に、いまインストールしたHeroku CLIを使って以下のコマンドを実行します。

$ heroku run rails db:migrate

これでデプロイは完了です。

参考

関連記事

Rails: メモリ使用量を制限してHerokuのR14エラー修正&費用を節約した話(翻訳)

Rails: DockerでHeroku的なデプロイソリューションを構築する: 前編(翻訳)


CONTACT

TechRachoでは、パートナーシップをご検討いただける方からの
ご連絡をお待ちしております。ぜひお気軽にご意見・ご相談ください。