3rdRailからPostgreSQLへ接続する方法(Windows編)

Abstrakti: 3rdRailからPostgreSQLへ接続する方法です

下記の接続検証は、PostgreSQL v8.2.9で行っています。

PostgreSQLバージンによっては、接続の設定が異なる場合があります。

dummy

PostgreSQLデータベースは、下記のサイトから入手できます。

http://www.postgresql.jp/PostgreSQL

dummy

3rdRailのRailsプロジェクトでは、データベースとして"PostgreSQL"を選択できますが、

Rubyの実行環境からPostgreSQLデータベースへ接続するためには、

PostgreSQLネイティブクライアントの他に

別途、"ruby-postgres"という拡張ライブラリのインストールが必要です。

dummy

3rdRailからPostgreSQLデータベースへ接続に必要な手順は

以下の通りです。

dummy

    1.ruby-postgres 拡張モジュールのインストール

3rdRailからインストールするには、

ワークスペース・コマンダーもしくはプロジェクト・コマンダーで以下のように実行してください。

>gem install ruby-postgres

現時点での最新版、ruby-postgres-0.7.1.2006.04.06-x86-mswin32がインストールされます。

上記以外にどういったバージョンがあるか知りたい場合には、以下のコマンドを実行し、

確認することができます。

>gem list --remote ruby-postgres

このコマンドにより、入手可能なruby-postgresのバージョンがリストアップされます。

*** REMOTE GEMS ***

Bulk updating Gem source index for: http://gems.rubyforge.org/
ruby-postgres (0.7.1.2006.04.06, 0.7.1.2006.04.05, 0.7.1.2005.12.21, 0.7.1.2005.12.20, 0.7.1.2005.12.19, 0.7.1.2005.11.27, 0.7.1.2005.11.26, 0.7.1.2005.11.24, 0.7.1.2005.11.23)

例えば、特定のバージョンを指定してインストールしたい場合には、以下のコマンドを実行してください。

>gem install ruby-postgres -v 0.7.1.2005.12.20

これにより、ruby-postgres-0.7.1.2005.12.20-x86-mswin32がインストールされます。

インストール実行後、以下のコマンドにより、指定したバージョンのライブラリがインストールされているか確認してください。

>gem list ruby-postgres
*** LOCAL GEMS ***

ruby-postgres (0.7.1.2006.04.06, 0.7.1.2005.12.20)

    2. 環境変数PATHの設定

環境変数PATHに<PostgreSQL_InstallHome>\binを追加します。

例えば、PostgreSQLをインストールしたパスが

C:\Program Files\PostgreSQL\8.2の場合には、

[コントロールパネル]-[設定]-[システム]-[詳細設定]-[環境変数]から

環境変数PATHにC:\Program Files\PostgreSQL\8.2\binを追加してください。

Hide image
path

以上1~2の手順が完了後、Railsプロジェクトからデータベースとして

PostgreSQLを選択してください。

    PostgreSQL v8.3.xへ接続する際の注意点

3rdRailからPostgreSQL v8.3.xへ接続する際、

<CGRubyInstall>\bin内にデフォルトでインストールされているOpenSSLの

バージョンが古いため、PostgreSQL v8.3.xが要求するOpenSSLのバージョンと合わず、

以下のようなエラーが生じ、正常に接続できない場合があります。

Hide image
error

その場合、<CGRubyInstall>\bin以下の2つのファイルをリネームしてください。

libeay32.dll  => libeay32.dll.bak
ssleay32.dll  => ssleay32.dll.bak

続いて、<PostgreSQL_InstallHome>がC:\Program Files\PostgreSQL\8.3の場合

C:\Program Files\PostgreSQL\8.3\bin\libeay32.dll
C:\Program Files\PostgreSQL\8.3\bin\ssleay32.dll

の2つのファイルを

<CGRubyInstall>\bin\libeay32.dll
<CGRubyInstall>\bin\ssleay32.dll

へコピーしてください。

以上の方法で3rdRailからPostgreSQL v8.3.xへ接続ができますが、

コピーした上記二つのファイルのバージョンで3rdRailがテストされているわけではないため、

PostgreSQL以外の箇所で別の問題が生じる可能性があります。

もし問題が生じた場合には、リネームしたOpenSSLファイルのバージョンへ戻してください。