序章


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データベースと通信しています。