Status: Deprecated

This article is deprecated and no longer maintained.

Reason

We now provide up to date tutorials for using Rails with Postgres that are tailored to individual platforms.

See Instead

This article may still be useful as a reference, but may not work or follow best practices. We strongly recommend using a recent article written for the operating system you are using.

序章


Postgres(またはPostgreSQL)はオープンソースデータベースです。 Ruby on Rails は、Rubyで記述されたオープンソースのWebフレームワークです。 Railsはデータベースに依存しないため、さまざまなデータベースで使用できます。 デフォルトでは、MySQLが使用されていることを前提としていますが、代わりにPostgresで使用するのは非常に簡単です。

このガイドでは、Postgresデータベースを使用するRailsアプリケーションを作成する手順を説明します。 ローカルマシンまたはVPSのガイドに従うことができます。

インストール要件


RVMを使用したRailsのインストール

Railsをインストールする最も簡単な方法は、 RVM を使用することです。これにより、Rubyもインストールされます。 RVMをインストールするには、システムに curl がインストールされていることを確認する必要があります(これを行う方法はOSによって異なります)。 すでにRVMがインストールされている場合は、次のセクションにスキップしてください。

RVMは、インストールの一部としてRubyとRailsを自動的にインストールできます。 これを行うには、次のコマンドを実行します。

\curl -L https://get.rvm.io | bash -s stable --rails

:RVMインストールスクリプトを実行する前に確認する必要があります(またはパイプする他のリモートスクリプト) bash.

RVMはそれ自体をシステムにインストールします。 これで、Rubyバージョンの管理に使用できます。 プロジェクトごとに異なるバージョンのRubyが必要になる場合があるため、これは便利です。 RVMはRailsgemもインストールしてくれました。

RubyGemsを使用したRailsのインストール

すでにRVMがインストールされている場合は、再インストールする必要はありません。 代わりに、gemをインストールするだけでRailsをインストールできます。

gem install rails

これにより、Railsとそれが必要とするその他のgemがインストールされます。

Postgresのインストール

Postgresのインストール方法はOSによって異なります。 完全なリストについては、postgresql.org/downloadを参照してください。 一般に、Ubuntuのapt-getやOSXのHomebrewなどのパッケージマネージャーを使用するのが最も簡単です。

ローカルマシンにPostgresをインストールする場合は、GUIもインストールすることをお勧めします(このガイドではコマンドラインの使用を想定しています)。 pgAdmin は世界で最も美しいツールではありませんが、機能します。

最後に、RubyコードからPostgresとインターフェースできるように、pggemをインストールする必要があります。 そうするために:

gem install pg

Postgresの設定


次のステップで作成するRailsアプリのPostgresユーザーを作成します。 これを行うには、Postgresユーザーに切り替えます。

su - postgres

その後、Postgresにアクセスします。

psql

次に、ユーザー(またはPostgresが呼ぶ「ロール」)を作成します。

create role myapp with createdb login password 'password1';

Railsアプリの作成


Postgres用に構成されたRailsアプリを作成するには、次のコマンドを実行します。

rails new myapp --database=postgresql

これにより、「myapp」という名前のアプリを格納する「myapp」というディレクトリが作成されます(コマンドの実行時に任意の名前を付けることができます)。 Railsは、データベースユーザーの名前がアプリケーションの名前と一致することを想定していますが、必要に応じて簡単に変更できます。

次に、Railsが通信するデータベースを構成します。 これは、次の場所にあるdatabase.ymlファイルを使用して行われます。

RAILS_ROOT / config / database.yml

:RAILS_ROOTはRailsのルートディレクトリです。 上記の例では、(現在の場所に対して)/myappにあります。

database.ymlファイルは、現在のRails環境に適したデータベースに接続するためにRailsによって使用されます。 データシリアル化標準であるYAMLを使用します。 さまざまな環境用にここにリストされているデータベースがいくつかあります。 開発、テスト、および本番。 デフォルトでは、Railsは環境ごとに異なるデータベースを想定します。 たとえば、Railsテストを実行するたびにテストデータベースが空になり、再構築されるため、これは便利です。 データベースごとに、ユーザー名とパスワードがPostgresユーザーに指定したユーザー名とパスワードと一致していることを確認してください。

構成が完了すると、database.ymlには次のようなものが含まれるはずです。

development:
  adapter: postgresql
  encoding: unicode
  database: myapp_development
  pool: 5
  username: myapp
  password: password1

test:
  adapter: postgresql
  encoding: unicode
  database: myapp_test
  pool: 5
  username: myapp
  password: password1

その後、次を実行できます。

rake db:setup

これにより、開発データベースとテストデータベースが作成され、所有者が指定されたユーザーに設定され、それぞれに「schema_migrations」テーブルが作成されます。 このテーブルは、スキーマとデータへの移行を記録するために使用されます。

ランニングレール


今すぐRailsアプリを起動できるはずです。

rails server

localhost:3000 に移動すると、Railsのランディングページが表示されます。 しかし、これは実際にはあまり効果がありません。 データベースを操作するために、スキャフォールドを作成しましょう。

rails g scaffold Post title:string body:text
rake db:migrate

次に、 localhost:3000 /postsに移動します。 ここから、新しい投稿を作成したり、既存の投稿を編集したり、投稿を削除したりできます。 その他の入門操作については、Rails入門ガイドを参照してください。

RailsアプリがPostgresデータベースと通信しています。