PostgresでRubyonRailsをセットアップする方法
序章
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データベースと通信しています。