macosxにpostgres9.0.4をインストール

macosxで作りはじめたrails3アプリ、データベースをsqlite3からpostgresに切り替える。

※rvmとrails3とmacportsはインストール済みの前提。

 $ gem install pg

pg_configがないぞ、というエラー。

 checking for pg_config... no
 No pg_config... trying anyway. If building fails, please try again with
  --with-pg-config=/path/to/pg_config

そこでmacportsでpostgresをインストールすることにした。以下、その手順。
最近portsを使っていなかったので、

 $ sudo port selfupdate

パッケージ名を調べる

 $ port search postgres

バージョン9.0.4をインストールする。

 $ sudo port install postgresql90
 $ sudo port install postgresql90-server

表示されたメッセージに従って以下の手順。

 $ sudo port load postgresql90-server
 $ sudo mkdir -p /opt/local/var/db/postgresql90/defaultdb
 $ sudo chown postgres:postgres /opt/local/var/db/postgresql90/defaultdb
 $ sudo su postgres -c '/opt/local/lib/postgresql90/bin/initdb -D /opt/local/var/db/postgresql90/defaultdb'

あらためてpgのインストール

 $ gem install pg  --  --with-pg-config=/opt/local/lib/postgresql90/bin/pg_config

 Building native extensions.  This could take a while...
 Successfully installed pg-0.11.0
 1 gem installed
 Installing ri documentation for pg-0.11.0...
 Installing RDoc documentation for pg-0.11.0...

以下、rails3アプリのルートディレクトリで操作。
Gemfileに以下を追加。

 gem 'pg'

バンドルのインストール。

 $ bundle install
 ...
 Using pg (0.11.0) 
 ...
 Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.

database.ymlはこんな感じで。

 test:
   adapter: postgresql
   database: june_test
   username: rails
   password: rails
   host: 127.0.0.1
   encoding: utf8

この段階でtest/unitを実行すると

 PGError: FATAL:  role "rails" does not exist

ここで、ロールを追加するか、アクセス制限を緩和するか、方針を考える。