Programing Note

千里の道も一歩から

Programing Tips > Ruby/Ruby on Rails > Herokuでpostgresqlを使う方法 -Ruby on Rails-

Tweet

Advertisement



Event

・サイトを引っ越ししました。2016/10/15

新しいサイトはこちらです。

・サイトをリニューアルしました。2015/12/29

Related Articles:

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にWebアプリを公開する方法 -Ruby on Rails-

  • 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のリンクをクリックして新しいレコード追加してやれば、

    追加したレコードがちゃんと、画面に表示されます。


    inserted by FC2 system