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のドキュメントはここににストールされてた。ここのドキュメントを読むのが一番早いかも。