Herokuでpostgresqlを使う方法 -Ruby on Rails-
Update on July 11, 2016
Ruby on Railsは、デフォルトで使うデータベースがSQLiteなのですが、
これをHerokuで推奨しているデータベースのpostgresqlに変更する方法をメモしておきます。
確認環境:
Max OS X El Capitan 10.11.2
Xcode 7.3
Command Line Tools for Xcode 7.3
Homebrew 0.9.9
Ruby 2.3.1
以下のコマンドで自分のPCにRuby on Railsのアプリを作成します。
今回は、アプリの名前を test としておきます。
-d postgresql オプションでデータベースにpostgresqlを指定します。
$ rails new test -d postgresql
以下のコマンドで、作成したアプリの場所に移動します。
$ cd test
scaffoldコマンドで、雛形を作成します。
今回は、name:string hp:integerという2つのフィールドを指定します。
$ rails g scaffold status name:string hp:integer
ここで一旦プレコンパイルしておきます。
(不要かもしれません?)
$ rake assets:precompile
ここまで済んだら、作成した「test」アプリをGitHubに登録します。
そして、Herokuで新しいアプリと新しいパイプラインを作成し、
GitHubと連携して、作成した「test」アプリを取り込みます。
このあたりの方法は、以下の記事を参考にしてください。
Herokuのダッシュボードから新しく作成したアプリの画面を開き、
Resourcesタブを開きます。
Add-one の虫眼鏡の箇所に postgres と入力すると、Heroku Postgresが現れますので、
それを選択してください。
プランは無料で使える Hobby Devを選んでください。
ここまで完了したら、画面上のメニューボタンを押して、Databases画面へ移動します。
作成したデータベース一覧の中から、先ほど作成したデータベース名をクリックしてください。
Overviewタブの Connection Settings 画面を確認してください。
ここの値を自分のローカルPCで作成した Ruby on Rails の
/config/database.ymlファイルに設定します。
production:
database: Heroku PostgresのDatabaseの値
port: 5432
username: Heroku PostgresのUserの値
password: Heroku PostgresのPasswordの値-l
host: Heroku PostgresのHostの値
development:
production と同じ。
/config/database.ymlファイルの設定が完了したら、
以下のコマンドでマイグレートします。
$ rake db:migrate
ここまで完了したら、Ruby on Railsのアプリの変更内容を
GitHubにコミットし、リモートリポジトリにプッシュします。
こうすると、Herokuにこの変更が反映されます。
そして、Herokuのダッシュボード画面から、作成したアプリの画面を表示し、
画面右上の Open app ボタンを押します。
するとブラウザが起動します。
起動したURLの末尾に /statses を追加して表示してやります。
scaffoldで作成した、こんな画面が表示されます。
New Statusのリンクをクリックして新しいレコード追加してやれば、
追加したレコードがちゃんと、画面に表示されます。