こんにちは。エンジニアアルバイトの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」を選択します。

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

「Open app」をクリックして確認してみましょう。

以下のような画面が表示されていれば成功です。

ローカルに作成したアプリケーションの設定
(注:詳細は割愛しますが、今回デプロイするアプリケーションは$ 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を開くとこのような画面が表示されるはずです。

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

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

「URL/パス」の欄にはリモートリポジトリのURLを入力します。リモートリポジトリのURLはHerokuの「Settings」から確認することができます。今回「リモートの名前」はherokuにしました。

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
これでデプロイは完了です。
参考
- Herokuドキュメント: Getting Started with Rails 5.x on Heroku
 - Herokuドキュメント: Heroku CLI
 - 絶対できる!Source Treeの使い方を初心者向けに説明してみた!
 - Webサービスをすぐに動かせる!HerokuでRailsアプリを公開する方法【初心者向け】