postgres-prでPostgreSQLに接続してSQL発行

いつもはRailsを使ってDBにアクセスに行くんだけど、ちょっとスクリプト書いて使いたいって時に面倒だから(簡単にできるのかもしれないけど)、直接アクセスできないか調べてみた。この前、Railsを入れたときに gem install postgres-prをやったので、多分こいつが使えるはず。

そして、以下のサイトにそれっぽい記事があったので参考に。

Ruby Postgres
エムザス株式会社:人事労務・システム開発を二本柱とし、問題解決型のアウトソーシングサービスをご提供します。

require 'rubygems'
require "postgres"

HOST = '192.168.10.19'
PORT = 5432
OPTION = '-c client_encoding=utf-8 -c client_min_message=debug'
DB_NAME = 'test_production'
DB_USER = 'testuser'
DB_PASS = 'testpass'

# コネクション取得
conn =PGconn.new(HOST, PORT, OPTION, nil, DB_NAME, DB_USER, DB_PASS)
sql = 'SELECT * FROM employees'

# クエリ発行
conn.query(sql).each do |r|
  puts "#{r[0]} #{r[1]}"
end

conn.close

と、これだけでDBにアクセスすることができた。postgres-prが入っていれば問題ないかな、きっと。ちょっとはまったのは、SQL文を別のファイルから読み込んで実行とかしてたんだけど、スクリプト文字コードSQLファイルの文字コードUTF-8にしておかないとエラーがでてしまった。(SQL文に日本語のコメントとかあったせいだと思う)

まぁ、備忘録的な感じで・・。しかし、RubyのDBアクセスの標準的なのがわからないな。いや、そもそもRubyには最初からJDBCのような統一的なインターフェースがなかったからいろんな実装がある的な話を聞いたことがあるような。PGconnとかやだね。いろんなサイトを見たけど、どれが一般的なのかよくわからなかったな。
あ、そうそう、postgres-prのドキュメントはここににストールされてた。ここのドキュメントを読むのが一番早いかも。

ruby\ruby-1.8\lib\ruby\gems\1.8\doc\postgres-pr-0.6.1\rdoc