はじめに
かなり色々な人がまとめてくれていましたが、その通りにやっても動かなかったので、備忘録としてまとめておきます。
自分の場合$heroku login
コマンドが上手く使えなかったので、そういう方がいればこちらの方法で。
※ちなみに、mysqlを使用する場合はクレジットカードが必要になるので(無料で利用できます)
それだと困る方は、標準のpostgresを利用することができます。
使用環境
ruby 2.5.0
Rails 5.1.5
mysql2 0.4.10
1. herokuアプリの作成
herokuのアカウント取得に関しては、省略します。ここではherokuアカウントがあることを前提に。
まずは、heroku Toolbeltをインストールします。
heroku Toolbeltとは、コマンドライン上で、herokuの操作ができるようにできるツールです。
$brew install heroku-toolbelt
(※これは、rubyが入っていないと動かないようなので、Ruby以外で利用する場合は適宜インストールしてください。)
これでインストール完了です。ここで
$heroku login
とかやると、IDとパスワードでherokuにログインができるようになります。
次に、herokuアプリケーションを作成します。
$heroku create
で作成が可能です。
ちなみに、
$heroku create [app_name]
とやるとアプリ名が設定できます。
設定を変更したい場合は
$heroku rename [app_name]
とすると、あとからでも変更ができます。
$ heroku create
=> Creating [hogehoge]... done, stack is cedar-14
=> https://hogehoge.herokuapp.com/ | https://git.heroku.com/hogehoge.git
=> Git remote heroku added
のようになにも指定しない場合、hogehoge
のようなランダムの文字列が生成され、アプリ名を設定した場合は、こちらにアプリ名が入ります。
ちなみに、URLも同様に生成されるので、この場合、https://hogehoge.herokuapp.com/
でアクセスが可能です。
2. データベースの設定
今回のゴールは、DBの設定が以下の様になっていることです。
CREARDB_DATABASE_URL
が mysql:hogehogehoge
DATABASE_URL
が mysql2:hogehogehoge
これを目指して設定していきましょう。
まずは、ClearDBアドオンの設定です。
※ClearDBアドオンとは、ClearDBというHerokuとは独立したデータベースサービスが提供している、MySQLを使うためのものです。
herokuのwebページに戻ると先程作成したアプリケーションが一覧に並んでいるかと思います。
こちらからアプリケーションを選択して、Overview
のConfihure Add-ons
から設定をしていきます。
こちらのフォームで、clearDB
と入力すると、以下のうように、clearDB MySQLアドオンが登録できます。
SettingsのConfig Variables
から設定一覧が確認できるかと思いますが、そちらのCREARDB_DATABASE_URL
が mysql:hogehogehoge
に変わっているかと思います。
コンソールからは、heroku config
で設定が確認できます。
確認ができたら、今度はDATABASE_URL
を変更していきます。
コンソールから、
heroku config:add DATABASE_URL='mysql2:{hogehoge}'
と入力し(hogehogeは先程のCREARDB_DATABASE_URL
のmysql:以下と同様)
設定可能です。
もう一度コンソールから、heroku config
で設定が確認すると、今回のゴールである、二つの設定が変更できたかと思います。
3.Railsプロジェクトの設定
Railsプロジェクトの方でもデプロイの準備をします。
config/environments/production.rb
にある
config.assets.compile = false
をconfig.assets.compile = true
に変更します。
(元から変更の必要がない場合もあります。)
ここまできたらコンソールから
git push heroku master
として、herokuにアプリケーションをpushすることが可能です。(これでデプロイ)
最後に
heroku run rake db:migrate
でmigrateしてあげて、先程のアプリケーションURLにアクセスすると、自分のアプリケーションが立ち上がっているかと思います。
まとめ
色々行き来しましたが、コンソールだけで設定も可能です。自分の場合何故かClearDBのアドオンが入手できなかったので、GUIで操作しました。
今回作業してみてわかったかと思いますが、herokuを使うと自分のアプリケーションを簡単にデプロイすることが可能です。設定やアドオンなどを利用でき、ある程度であれば無料で使うことができるので、今後共お世話になるかと思います。