こんにちは。エンジニアアルバイトの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アプリを公開する方法【初心者向け】