Ubuntuでローカルのpostgresに接続する手順
Ubuntu9.0.4で、Rubyからローカルのpostgresに接続する手順のメモです。
Ruby/DBIのインストール
Ruby/DBIはrubyから各種DBへの接続を透過的に行う為のインターフェイスです。Javaの世界におけるJDBCみたいなものと理解。Ubuntuではパッケージが用意されているのでそれをインストールします。
$ apt-get install libdbd-pg-ruby1.8
※当初、gem経由でインストールしようとしてドはまり。
$ gem install dbi $ gem install dbd-pg
dbiはインストールできるのですが、dbd-pgのインストールでpg_configがないとかいう感じのエラーに。postgresql-devel的なパッケージを探すもそれっぽいのはないなー → あれ「libdbd-pg-ruby1.8」とかあるぞ、となった次第。
接続用ユーザーを作る
postgresユーザーで接続するのはなんとなく気が引けたので、接続用ユーザーを作成。
$ su - postgres $ createuser -P <ユーザー名>
テスト用テーブルにアクセス権を付与します。
$ psql test # GRANT ALL PRIVILEGES ON kitten TO <ユーザー名>;
接続プログラム例
後は、こんな感じのコードを書けば接続可能です。
require 'dbi' db = DBI.connect("DBI:Pg:test:localhost", "<ユーザー名>", "<パスワード>") st = db.execute("SELECT * FROM kitten") st.fetch { |row| p row } st.finish
実行結果です。
["mii", 1] ["tora", 2]